`
splayx
  • 浏览: 82845 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

561_500

    博客分类:
  • SRM
 
阅读更多

用stl的complex挺方便的,记住这几个函数就够用了

arg(t);返回值(-pi, pi]

real(t);

imag(t);

abs(t);

 

然后把complex的除法运算优化成乘法运算,效率就够用了。

 

const double pi = acos(-1.0);
const double eps = 1e-9;

typedef complex<double> cd;
//在这里定义vector可以减少局部变量开辟回收的开销
vector<double> w0, w1, d0, d1;
bool hasIt(cd t0, cd t1, const vector<cd>& vc) {
	w0.clear();
	w1.clear();
	d0.clear();
	d1.clear();
	//除法优化好关键,否则常数太大
	cd tt = cd(1, 0) / (t1 - t0);
	for (int i = 0; i < vc.size(); ++i) {
		cd c0 = (vc[i] - t0) * tt;
		cd c1 = (vc[i] - t1) * tt;
		double x0 = arg(c0), x1 = arg(c1);
		if (x0 > 0) {
			w0.push_back(x0);
			w1.push_back(x1);
		} else {
			d0.push_back(x0 + pi);
			d1.push_back(x1 + pi);
		}
	}
	sort(w0.begin(), w0.end());
	sort(w1.begin(), w1.end());
	for (int i = 0; i < d0.size(); ++i) {
		int a0 = lower_bound(w0.begin(), w0.end(), d0[i]) - w0.begin();
		int a1 = lower_bound(w1.begin(), w1.end(), d1[i]) - w1.begin();
		if (a0 != a1) return true;
	}
	return false;
}

class CheckerFreeness {
public:
    string isFree(vector <string> whiteX, vector <string> whiteY, vector <string> blackX, vector <string> blackY) {
        vector<cd> v1, v2;
		vector<double> t0, t1, t2, t3;
		Scanf(whiteX, t0);
		Scanf(whiteY, t1);
		Scanf(blackX, t2);
		Scanf(blackY, t3);
		for (int i = 0; i < t0.size(); ++i) v1.push_back(cd(t0[i], t1[i]));
		for (int i = 0; i < t2.size(); ++i) v2.push_back(cd(t2[i], t3[i]));
		for (int i = 0; i < v1.size(); ++i) {
			for (int j = i + 1; j < v1.size(); ++j) {
				if (hasIt(v1[i], v1[j], v2)) return "NO";
			}
		}
		return "YES";
    }
};

 

 

分享到:
评论

相关推荐

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    获取:28 http://cn.archive.ubuntu.com/ubuntu/ trusty/main texinfo amd64 5.2.0.dfsg.1-2 [561 kB] 下载 3,425 kB,耗时 2秒 (1,303 kB/s) Selecting previously unselected package libencode-locale-perl. ...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 ...

    Eclipse_Swt_Jface_核心应用_部分19

    第1章 Java语言的GUI历史 2 1.1 最初的AWT 2 1.2 Swing工具包 3 1.3 Eclipse的诞生 3 1.4 Eclipse贡献SWT工具包 5 1.4.1 SWT的结构 6 ...1.4.2 SWT所支持的操作系统 6 ...1.5 Sun AWT/Swing与Eclipse SWT 7 ...

    pro_apache_third_edition..pdf

    Contents About the Author...............................................................................................xix About the Technical Reviewer and Contributing Author.................xxi ...

    C#.net_经典编程例子400个

    第1章 窗体与界面设计 1 1.1 菜单应用实例 2 实例001 带历史信息的菜单 2 实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 5 实例005 可以拉伸...

    FPGA 控制 LCD 1602

    500:begin //write data X LCD_DATA; LCD_RW; LCD_RS; end 501: LCD_EN; 510:begin //write data S LCD_DATA; LCD_RW; LCD_RS; end 511: LCD_EN; 520: begin //write data K LCD_DATA; LCD_RW; ...

    中国各省市区代码名称(三级)Sql脚本

    中国各省市区代码名称(三级)excel文档,共有3441条数据。已有上下级父子关系,可以直接导入数据库使用。 部分代码如下: CREATE TABLE [dbo].[tb_City]( [RecNo] [int] NOT NULL, [Code] [varchar](50) NULL, ...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    12.2.2 材料清单(BOM)500 12.2.3 道路系统503 12.3 迭代/递归506 12.3.1 下属506 12.3.2 祖先514 12.3.3 带有路径枚举的子图/子树517 12.3.4 排序519 12.3.5 环521 12.4 具体化路径524 12.4.1 维护数据...

    SQL21日自学通

    ROLLBACK TRANSACTION 500 REVOKE500 SELECT501 SET TRANSACTION501 UNION501 WHERE501 *501 附件B 在第14 天中的C++源代码清单502 附件 C 第14 天中的Delphi 源代码清单521 附件D 参考内容524 书524 Developing ...

    CAD字体,2000多种字体,常用各种cad图字体

    ├─1.SHX 552.86KB │ ├─@extfont2.shx479.38KB │ ├─A.SHX 266B │ ├─Aaa.shx 1.84KB │ ├─AcadEref.shx 823B │ ├─ACE.SHX 2.62KB │ ├─ACEHZTXT.SHX 1.12MB │ ├─Adbom.shx 966B ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。 全书压缩打包成2部分,这是第1部分。 注:本系列图书的第I、II卷再版时均相应改名...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。 全书压缩打包成2部分,这是第2部分。 注:本系列图书的第I、II卷再版时均相应改名...

    Beginning Python (2005).pdf

    xvii Contents Finishing Your Modules 154 Defining Module-Specific Errors 154 Choosing What to Export 155 Documenting Your Modules 156 Try It Out: Viewing Module Documentation ...

    leetcode338-leetcode:我对Leetcode问题的解决方案

    第 338 章 力码 简单的 ...561 476 500 557 344 575 566 226 404 中等的 # 标题 解决方案 95 338 654 419 513 442 406 540 553 515 647 399 677 413 416 难的 # 标题 解决方案 312 632 51 1106 736

    C++ Primer第四版【中文高清扫描版】.pdf

    15.5.4 虚函数与作用域 500 15.6 纯虚函数 502 15.7 容器与继承 503 15.8 句柄类与继承 504 15.8.1 指针型句柄 505 15.8.2 复制未知类型 507 15.8.3 句柄的使用 508 15.9 再谈文本查询示例 511 15.9.1 面向对象的...

    Apress.Pro.WPF.in.C.Sharp.2008.2nd.Edition.Feb.2008

    19.6 批注 561 19.6.1 批注类 562 19.6.2 启用批注服务 562 19.6.3 创建批注 563 19.6.4 检查批注 567 19.6.5 响应批注更改 569 19.6.6 在固定文档中保存批注 570 19.6.7 自定义便笺外观 571 19.7 结束语 572 第20章...

    leetcode104-LeetCode-algorithm:LeetCode上算法题的代码

    500 504 506 520 551 557 561 566 572 575 594 599 605 628 637 643 645 653 657 674 680 682 686 690 693 696 704 709 717 724 728 744 746 747 762 766 771 783 788 796 804 806 811 819 821 824 830 832 844 849 ...

Global site tag (gtag.js) - Google Analytics