标签:one frame data ant ons -o scan can data-
InputThe first line contains an integer T(1≤T≤10)T(1≤T≤10), the number of the test cases.
For each test case, 5 lines follow. Each line contains 2 real numbers xi,yi(?109≤xi,yi≤109)xi,yi(?109≤xi,yi≤109), denoting the coordinate of this point.OutputTwo numbers are equal if and only if the difference between them is less than 10?410?4.
For each test case, print YesYes if they can compose a five-pointed star. Otherwise, print NoNo. (If 5 points are the same, print YesYes. )Sample Input
2 3.0000000 0.0000000 0.9270509 2.8531695 0.9270509 -2.8531695 -2.4270509 1.7633557 -2.4270509 -1.7633557 3.0000000 1.0000000 0.9270509 2.8531695 0.9270509 -2.8531695 -2.4270509 1.7633557 -2.4270509 -1.7633557
Sample Output
Yes No
Hint
我想了下,感觉这道题做法很多啊,判边判点的,但是一想还是觉得判边比较轻松,只要考率里面五条边相等,外面五条边相等就好了
#include<bits/stdc++.h> using namespace std; int main() { int T,i,j; double x[5],y[5],a[15]; scanf("%d",&T); while(T--) { for(i=0; i<5; i++) scanf("%lf%lf",&x[i],&y[i]); int t=0,f=1; for(i=0; i<5; i++) for(j=0; j<i; j++) a[t++]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]); sort(a,a+t); for(i=0; i<9; i++) if(i!=4&&fabs(a[i]-a[i+1])>0.0001) f=0; printf("%s\n",f?"Yes":"No"); } return 0; }
标签:one frame data ant ons -o scan can data-
原文地址:http://www.cnblogs.com/BobHuang/p/7258735.html