[HDOJ5365]Run
2015-09-04 12:57
211 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5365
众所周知,整点是围不成正三角形正五边形正六边形的,所以我们只需暴力出它可以围成几个正四边形。
众所周知,整点是围不成正三角形正五边形正六边形的,所以我们只需暴力出它可以围成几个正四边形。
#include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <iostream> #include <cmath> #include <cctype> #include <queue> #include <map> #include <set> #include <stack> #include <list> #include <vector> using namespace std; typedef struct Node { int x; int y; }; Node po[22]; int edge[11]; int n; int dis(int x, int y) { return x * x + y * y; } int solve() { memset(edge, 0, sizeof(edge)); int ans = 0; for(int i = 0; i < n; i++) { for(int j = i+1; j < n; j++) { for(int p = j+1; p < n; p++) { for(int q = p+1; q < n; q++) { edge[0] = dis(po[i].x-po[j].x, po[i].y-po[j].y); edge[1] = dis(po[i].x-po[p].x, po[i].y-po[p].y); edge[2] = dis(po[i].x-po[q].x, po[i].y-po[q].y); edge[3] = dis(po[j].x-po[p].x, po[j].y-po[p].y); edge[4] = dis(po[j].x-po[q].x, po[j].y-po[q].y); edge[5] = dis(po[p].x-po[q].x, po[p].y-po[q].y); sort(edge, edge+6); if(edge[0] == edge[1] && edge[1] == edge[2] && edge[2] == edge[3] && edge[4] == edge[5]) { ans++; } } } } } return ans; } int main() { // freopen("in", "r", stdin); while(~scanf("%d", &n)) { for(int i = 0; i < n; i++) { scanf("%d %d", &po[i].x, &po[i].y); } printf("%d\n", solve()); } }
相关文章推荐
- Android开源框架Volley的使用
- MyBatis学习笔记(十)注解映射
- 排序
- 渗透笔记(二)
- python_基础04
- Spring中基于Java的配置@Configuration和@Bean用法
- java.util源码之AbstractCollection(基于jdk1.7)
- HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
- 运维技巧系列之shell随机生成密码脚本
- numpy教程:逻辑函数Logic functions
- 数据结构---数组(5)
- Numpy详解教程
- 9、ASP.NET MVC入门到精通——Controller(控制器)
- 欢迎使用CSDN-markdown编辑器
- ORM进阶之Hibernate中多对一的映射关系
- 4.7.3 Canonical LR(1) Parsing Tables
- 深入分析Docker镜像原理
- iOS 设置带占位文字的TextView
- 致自己--勿忘初心
- 64位CentOS 7.0系统安装mysql数据库