算法竞赛入门经典训练指南-4.1学习笔记
2014-05-23 20:57
232 查看
(1)平面坐标系下,向量和点一样也用x,y表示,等于向量的起点到终点的位移,也相当于把起点平移到坐标原点后终点的坐标。
//向量基本运算代码 struct Point { double x, y; Point(double = 0, double y = 0):x(x), y(y){ } }; typedef Point Vector;//从程序实现上,Vector只是Point的别名 //向量+向量=向量, 点+向量=点 Vector operator + (Vector A, Vector B){ return Vector(A.x + B.x, A.y + B.y); } //向量-向量=向量, 点-向量=点 Vector operator - (Vector A, Vector B){ return Vector(A.x - B.x, A.y - B.y); } //向量*数=向量 Vector operator * (Vector A, double p){ return Vector(A.x*p, A.y*p);} //向量/数=向量 Vector operator * (Vector A, double p){ return Vector(A.x/p, A.y/p);} bool operator < (const Point &a, const Point& b) { return a.x < b.x || (a.x == b.x && a.y < b.y); } const double eps 1e-10; int dcmp(double x) { if(fabs(x) < eps)return 0;//fabs(x)x的浮点数绝对值 else return x < 0 ? -1 : 1; } bool operator ==(const Point& a, const Point& b) { return dcmp(a.x - b.x) == 0 && dcmp(a.y - b.y) == 0; }
相关文章推荐
- 算法竞赛入门经典训练指南-4.1.1学习笔记
- 算法竞赛入门经典训练指南-4.1.2学习笔记
- 高质量C++/C编程指南学习笔记(上)
- [ASP.NET学习笔记之二十]ASP_NET 2.0 中web part使用指南
- Enterprise Library 4.1学习笔记2----数据访问程序块
- 微软StockTrader 2.03 学习笔记(7)--配置服务实现示例指南(三)
- 微软StockTrader 2.03 学习笔记(8)--配置服务实现示例指南(四)
- 高质量C++编程指南学习笔记
- 《创意人-创意思考的自我训练》 (学习笔记)
- 高质量C++/C编程指南学习笔记(上)
- Enterprise Library 4.1学习笔记1----配置应用程序块(c/s和b/s均适用)
- Enterprise Library 4.1 学习笔记( 二)配置应用程序模块
- 学习笔记[序列化].NET Framework 开发员指南
- jQuery 学习笔记 之二 附: jQuery入门指南教程列表
- Enterprise Library 4.1学习笔记7----缓存应用程序块之SqlDependency
- Enterprise Library 4.1学习笔记3----安全应用程序块
- Linux学习笔记 初学指南
- CCNA学习指南第3章IP寻址笔记
- 微软StockTrader 2.03 学习笔记(6)--配置服务实现示例指南(二)
- 高质量C编程指南 学习笔记(一)