G-Dancing Stars on Me(2015ACM-ICPC长春站)
题目大意:给出平面上几个整数坐标问是否能构成正多边形
------因为点都是整数,除了正方形以外别的多边形都不可能构成,所以只需要判断是不是正方形就可以
#include<cstdio> #include<algorithm> using namespace std; const int maxn = 100+10; int a[maxn],b[maxn]; int l[10]; int main(int argc, char const *argv[]) { int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&a[i],&b[i]); } if(n!=4){ printf("NO\n");continue;} for(int i=0,k=0;i<n;i++){ for(int j=i+1;j<n;j++,k++){ l[k]=(a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]); } } sort(l,l+6); if(l[0]==l[1]&&l[1]==l[2]&&l[2]==l[3]&&l[4]==l[5]&&l[4]!=l[3]) printf("YES\n"); else printf("NO\n"); } return 0; }