题目描述:http://poj.org/problem?id=1971
// 该题关键是如何判定给定4点可否构成平行四边形 // 根据平行四边形对角线互相平分,可知该题中只要 // 两对顶点连线的中点重合,就可以构成平行四边形(???), // 因为不存在4点共线 // 发现poj的测试数据不完善 // 在最后统计平行四边形个数的时候 // 如果不考虑 i == k + 2 这种情况也可以通过 #include <cstdio> #include <algorithm> using namespace std; struct point { int x,y; }; /* bool comp(point a, point b) { if(a.x == b.x) return a.y < b.y; return a.y < b.y; } */ bool operator<(const point a,const point one) { if(a.x == one.x) return a.y<one.y; return a.x<one.x; } int main() { point dots[1005]; point mid[500000]; int nCase; scanf("%d", &nCase); while(nCase--) { int k = 0; int n; scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d %d", &dots[i].x, &dots[i].y); for(int i = 0; i < n; i++) for(int j = i + 1; j < n; j++) { mid[k].x = (dots[i].x + dots[j].x); mid[k].y = (dots[i].y + dots[j].y); k++; } sort(mid, mid + k); //默认调用重载运算符operator< 或者加上第三个参数comp(注释部分函数) int sum = 0; int count = 1; for(int i = 0; i < k - 1; i++) { if(mid[i].x == mid[i + 1].x && mid[i].y == mid[i + 1].y) count++; else { sum += count * (count - 1) / 2; count = 1; } //当mid数组最后几个点(设为p)相同时,应把k*(k-1)/2加到sum中,以上else并未作处理 //未考虑这种情况也能通过,可能是测试数据不足 if(i == k - 2) sum += (count - 1) * count / 2; } printf("%d\n", sum); } return 0; }
发表评论
-
ACM 之 Java BigInteger
2011-06-01 20:26 0Java 的大整数类在ACM 中大有用武之地 ... -
判断点是否构成多边形, 顶点连续给出
2011-05-26 14:27 0#include <cstdio> #inc ... -
poj pku 1981 Circle and Points 点与圆 位置关系
2011-05-26 11:29 1261题目描述: http://poj.org/problem?id ... -
poj 1032 Parliament 数学
2011-05-25 17:34 1211题目描述: http://poj.org/problem?i ... -
poj 1385 Lifting the Stone 多边形重心
2011-05-25 11:13 1026题目描述: http://poj.org/problem?i ... -
poj 2676 Sudoku dfs 深搜
2011-05-16 21:05 872题目描述: http://poj.org/problem?i ... -
hdoj 2064 汉诺塔III 递推
2011-05-15 22:29 883题目描述: http://acm.hdu.edu.cn/sh ... -
hdoj 1207 汉诺塔II dp 动态规划
2011-05-15 21:22 1666题目描述: http://acm.hdu.edu.cn/sh ... -
poj 2506 Tiling 递推
2011-05-15 11:18 906题目描述: http://poj.org/problem?i ... -
poj 2420 A Star not a Tree? 多边形 费马点
2011-05-14 18:57 1796题目描述: http://poj.org/problem?i ... -
poj 2954 Triangle Pick 定理
2011-05-14 16:36 1083题目描述: http://poj.org/problem?i ... -
poj 1012 Joseph
2011-05-10 17:42 1231题目描述:poj.org/problem?id=10 ... -
zoj 1081 Points Within 点与多边形关系
2011-05-07 17:51 1132题目描述: http://acm.zju.edu.cn/on ... -
poj 1835 宇航员
2011-05-03 17:00 798题目描述:http://poj.org/problem?id ... -
poj 2398 Toy Storage
2011-04-23 20:19 714题目描述:http://www.poj.org/proble ... -
poj 1654 Area 多边形面积
2011-04-23 20:10 895题目描述:http://poj.org/proble ... -
poj 2318 TOYS 点 直线 位置关系
2011-04-23 10:06 664题目描述:http://poj.org/problem?id= ... -
poj pku 1673 EXOCENTER OF A TRIANGLE 三角形 垂心
2011-04-09 16:41 542题目描述:http://poj.org/problem?id= ... -
pc 111303 uva 10195 The Knights Of The Round Table
2011-04-04 16:06 750题目描述:http://www.programming-cha ... -
pc 111302 uva 10180 Rope Crisis in Ropeland!
2011-04-03 20:46 837题目描述: http://www.programming-ch ...
相关推荐
poj 2386 Lake Counting.md
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
pojACM题目分类,便于各类型同学分别做题有所参考
poj分类poj分类poj分类poj分类
北大POJ1159-Palindrome 解题报告+AC代码
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
POJ1503解答 POJ1503解答,正确答案(已通过POJ)
北大POJ2002-Squares 解题报告+AC代码
POJ1048,加强版的约瑟夫问题 难度中等
POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看
POJ1083的代码,POJ1083的代码,POJ1083的代码
poj 百练 题目分类 poj 百练 题目分类
poj 1001答案
POJ2968代码有用,欢迎下载,POJ代码