poj 2002 Squares
2011-05-02 12:10
246 查看
题意:给出n个点,求这n个点能组成多少个不同正方形.
思路: 枚举+快查.(再次学习了快速查找)
代码:
思路: 枚举+快查.(再次学习了快速查找)
代码:
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; struct point { int x,y; }p[1001],tmp; int cmp(point a, point b) { if(a.x == b.x) return a.y < b.y; return a.x < b.x; } int main(void) { int n; while(scanf("%d",&n) != EOF && n) { int i,j,ans=0; for(i=0; i<n; i++) scanf("%d%d",&p[i].x,&p[i].y); sort(p,p+n,cmp); for(i=0; i<n; i++) for(j=i+1; j<n; j++) { tmp.x = p[i].x + p[j].y - p[i].y; tmp.y = p[i].y -(p[j].x - p[i].x); if(!binary_search(p,p+n,tmp,cmp)) continue; tmp.x = p[j].x + p[j].y - p[i].y; tmp.y = p[j].y - (p[j].x - p[i].x); if(!binary_search(p,p+n,tmp,cmp)) continue; ans++; } printf("%d/n",ans/2); } return 0; }
相关文章推荐
- poj2002--Squares(n个点求正方形个数)
- poj 2002 Squares
- POJ 2002 Squares 笔记
- POJ-2002-Squares
- POJ 2002 Squares
- POJ 2002 Squares
- POJ 2002 Squares (已知正方形对角线两点推另外两点,STL set)
- poj2002——Squares
- POJ 2002 Squares
- Squares - POJ 2002 哈希
- POJ 2002 Squares (Hash)
- Squares - POJ 2002 哈希
- ZOJ2347 Squares (POJ2002 二分查找)
- POJ 2002 Squares
- POJ 2002 Squares
- poj 2002 Squares
- POJ 2002 Squares(hash+二分查找)
- poj 2002 Squares,hash
- poj 2002 Squares 判断一些点能组成多少个正方形 二分查找
- Hash (poj2002-Squares & poj3349-Snowflake Snow Snowflakes)