博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF Round 432 B. Arpa and an exam about geometry
阅读量:5289 次
发布时间:2019-06-14

本文共 2210 字,大约阅读时间需要 7 分钟。

题目链接

题目大意:纸上有三个点a, b, c,问有没有可能找到另一个点,将纸张绕着这个点选择一定角度后a与原来的b点重复,b与原来的c点重复。

解题思路:由于旋转相当于在画弧,因此可以发现另外找的点到a, b, c的距离都相等。又由于旋转的角度一样,因此只要保证a, b, c不在同一条线上并且a,b距离等于b, c距离即可。

可能需要注意精度问题。

代码:

1 const double eps = 1e-9; 2 const double PI = acos(-1); 3 ll powmod(ll a, ll b) { ll res = 1; a %= mod; assert(b >= 0); for (; b; b >>= 1) { if (b & 1)res = res*a%mod; a = a*a%mod; }return res; } 4 const int iadd[] = {
0, 1, 0, -1}, jadd[] = {
1, 0, -1, 0}; 5 const int inf = 0x3f3f3f3f; 6 const int maxn = 1e6 + 5; 7 double ax, ay, bx, by, cx, cy; 8 9 void solve(){10 double tmp = (cx - bx) * (by - ay) - (bx - ax) * (cy - by);11 if(fabs(tmp) < eps){12 puts("No");13 return;14 }15 double d1 = (ax - bx) * (ax - bx) + (ay - by) * (ay - by);16 double d2 = (cx - bx) * (cx - bx) + (cy - by) * (cy - by);17 if(fabs(d1 - d2) < eps){18 puts("Yes");19 return;20 }21 puts("No");22 }23 int main(){24 scanf("%lf %lf %lf %lf %lf %lf", &ax, &ay, &bx, &by, &cx, &cy);25 solve();26 }

题目:

B. Arpa and an exam about geometry
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Arpa is taking a geometry exam. Here is the last problem of the exam.

You are given three points a, b, c.

Find a point and an angle such that if we rotate the page around the point by the angle, the new position of a is the same as the old position of b, and the new position of b is the same as the old position of c.

Arpa is doubting if the problem has a solution or not (i.e. if there exists a point and an angle satisfying the condition). Help Arpa determine if the question has a solution or not.

Input

The only line contains six integers ax, ay, bx, by, cx, cy (|ax|, |ay|, |bx|, |by|, |cx|, |cy| ≤ 109). It's guaranteed that the points are distinct.

Output

Print "Yes" if the problem has a solution, "No" otherwise.

You can print each letter in any case (upper or lower).

Examples
input
0 1 1 1 1 0
output
Yes
input
1 1 0 0 1000 1000
output
No
Note

In the first sample test, rotate the page around (0.5, 0.5) by .

In the second sample test, you can't find any solution.

 

 

转载于:https://www.cnblogs.com/bolderic/p/7476845.html

你可能感兴趣的文章
WPF---数据绑定(一)
查看>>
HDU 4903 (模拟+贪心)
查看>>
C++ GC
查看>>
mysql: instr 多个字段 like数据
查看>>
php程序突然不能用file_get_contents()访问远程网址了?
查看>>
【Java】CXF
查看>>
git clone 报错 fatal: remote did not send all necessary objects
查看>>
JDK1.8源码之HashMap(一)——实现原理、查找及遍历
查看>>
Schema技术的使用小结.
查看>>
《深入浅出MFC》第八章 Document-View深入探讨
查看>>
DES算法
查看>>
HTTP报文详解
查看>>
raid 0 1 5 10 总结的知识点
查看>>
3D屏保:排色榜
查看>>
找出最长的有效括号内子括号的长度
查看>>
c语言条件表达式误区1
查看>>
linux中vfork对打开文件的处理
查看>>
数据类型
查看>>
【选择器】
查看>>
爬虫-数据解析
查看>>