《ACM国际大学生程序设计竞赛-算法与实现-俞勇-清华大学出版社》.pdf
文本预览下载声明
3.1
3.1.1
1 const double eps = 1e-8;
2 int cmp(double x) {
3 if (fabs(x) eps) return 0;
4 if (x 0) return 1;
5 return -1;
6 }
3 113
3.1.2
1 const double pi = acos(-1.0);
2 inline double sqr(double x) {
3 return x * x;
4 }
5 struct point {
6 double x, y;
7 point() {}
8 point(double a, double b): x(a), y(b) {}
9 void input() {
10 scanf(%lf%lf, x, y);
11 }
12 friend point operator + (const point a, const point b) {
114 ACM
13 return point(a.x + b.x, a.y + b.y);
14 }
15 friend point operator - (const point a, const point b) {
16 return point(a.x - b.x, a.y - b.y);
17 }
18 friend bool operator == (const point a, const point b) {
19 return cmp(a.x - b.x) == 0 cmp(a.y - b.y) == 0;
20 }
21 friend point operator * (const point a, const double b) {
22 return point(a.x * b, a.y * b);
23 }
显示全部