hdu5533
题目
就是给你n个点,都是整点,问能不能构成正n边形。
思路
整点只能构成正四边形http://www.zhihu.com/question/25304120
代码
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
double x[110];
double y[110];
double ma[110][110];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%lf %lf",&x[i],&y[i]);
if(n!=4)
{
printf("NO\n");
continue;
}
else
{
double minn=100000;
int num=0;
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
{
ma[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
if(ma[i][j]==minn) num++;
else if(ma[i][j]<minn)
{
num=1;
minn=ma[i][j];
}
}
if(num==4)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}