HDU 5533 Dancing Stars on Me——几何

网友投稿 250 2022-11-01


HDU 5533 Dancing Stars on Me——几何

题意:判断n个星星是否能组成正多边形

思路:因为坐标都是整数,所以星星如果能组成正多边形,那么这个多边形一定是正方形,所以对于n不等于4的排除就好,对于n等于4的,判断所有不重复的边中是否有4条边相等就好

#include #include #include #include #include using namespace std;const int maxn = 110;int T, N;struct Node { int x, y;}node[maxn];struct Edge { int len;}edge[maxn * maxn];map Map;int main() { scanf("%d", &T); for (int kase = 1; kase <= T; kase++) { scanf("%d", &N); for (int i = 1; i <= N; i++) { scanf("%d %d", &node[i].x, &node[i].y); } if (N != 4) { printf("NO\n"); continue; } int cnt = 0; for (int i = 1; i <= 4; i++) { for (int j = i + 1; j <= 4; j++) { edge[++cnt].len = (node[i].x - node[j].x) * (node[i].x - node[j].x) + (node[i].y - node[j].y) * (node[i].y - node[j].y); } } Map.clear(); bool ok = false; for (int i = 1; i <= cnt; i++) { Map[edge[i].len]++; if (Map[edge[i].len] == 4) { ok = true; break; } } if (ok) printf("YES\n"); else printf("NO\n"); }}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:POJ 1703 Find them, Catch them——并查集
下一篇:JAVA | Guava EventBus 使用 发布/订阅模式的步骤
相关文章

 发表评论

暂时没有评论,来抢沙发吧~