HDU 5533 Dancing Stars on Me

来源:互联网 发布:带宽100m交换机的端口! 编辑:程序博客网 时间:2024/05/20 02:54

题意:给你n个点,问这n个点能否组成正n边形

因为整点正多边形只能是正方形,所以随便搞搞就可以

#include <cstdio>#include <algorithm>using namespace std;struct P{    int x, y;    P(){}    P(int _x, int _y){x = _x; y = _y;}}p[105];bool operator < (P a, P b) {return (a.x != b.x) ? a.x < b.x : a.y < b.y;}P operator - (P a, P b) {return P(a.x - b.x, a.y - b.y);}int dot(P a, P b) {return a.x * b.x + a.y * b.y;}int dis2(P a, P b) {return (a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y);}bool solve(){    if(dot(p[0] - p[3], p[1] - p[2]) != 0) return false;    if(dis2(p[0], p[3]) != dis2(p[1], p[2])) return false;    return true;}int main(){    int T;    scanf("%d", &T);    while(T--)    {        int n;        scanf("%d", &n);        for(int i = 0; i < n; i++)            scanf("%d%d", &p[i].x, &p[i].y);        if(n != 4)        {            printf("NO\n");            continue;        }        printf("%s\n", solve() ? "YES" : "NO");    }    return 0;}


0 0