HDU 5533 Dancing Stars on Me [数学]
2016-02-28 18:50
239 查看
2015区域赛 长春赛区 G题
格点 百度百科
既然如此,N != 4就直接再见
然后6条边长度必定是4条相等,另外两条根号2,排序,判断一下就是了
Description
给N个格点,问能否组成正多边形Algorithm
格点正多边形形只能是正方形格点 百度百科
既然如此,N != 4就直接再见
然后6条边长度必定是4条相等,另外两条根号2,排序,判断一下就是了
Code
#include <cstdio> #include <cmath> #include <algorithm> using namespace std; struct P { int x, y; }; double dist(const P &a, const P &b) { return pow(a.x - b.x, 2) + pow(a.y - b.y, 2); } bool solve() { int n; scanf("%d", &n); if (n != 4) { int x, y; for (int i = 0;i < n; i++) scanf("%d%d", &x, &y); return false; } P a[4]; for (int i = 0; i < n; i++) scanf("%d%d", &a[i].x, &a[i].y); double d[6]; int k = 0; for (int i = 0; i < n; i++) for (int j = 0; j < i; j++) d[k++] = dist(a[i], a[j]); sort(d, d+k); if (d[0] == d[1] && d[1] == d[2] && d[2] == d[3] && d[4] == d[5] && d[4] == d[3] * 2) return true; return false; } int main() { int t = 1; scanf("%d", &t); for (int i = 0; i < t; i++) solve() ? puts("YES") : puts("NO"); return 0; }
相关文章推荐
- 用宏定义的形式书写代码块
- Data Binding 打造RecyclerView 万能适配器
- Collections.synchronizedList()不同锁造成的陷阱
- ZOJ 3713 10th省赛 I In 7-bit【位运算】
- ActiveMQ消息机制[QUEUE/TOPIC]实例
- Docker私有仓库Registry搭建(localhost 可行但跨主机有问题)
- gc 垃圾回收机制
- 实验--反汇编一个简单的C程序(李鹏举)
- composer之安装
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Memcache缓存系统原理
- 时间的秘密1:下跌市的反弹
- 观察者模式(一),手动编码(参考仿造《Head First设计模式》)
- sudo: effective uid is not 0, is sudo installed setuid root
- Windows DiskPart工具使用
- C++ 图的遍历
- 第一周学习笔记
- android线程和进程关系
- if else
- Android开发规范