Regular polygon 数学几何
2017-07-27 22:13
253 查看
Description
On a two-dimensional plane, give you n integer points. Your task is to figure out how many different regular polygon these points can make.Input
The input file consists of several test cases. Each case the first line is a numbers N (N <= 500). The next N lines ,each line contain two number Xi and Yi(-100 <= xi,yi <= 100), means the points’ position.(the data assures no two points share the same position.)Output
For each case, output a number means how many different regular polygon these points can make.Sample Input
40 0
0 1
1 0
1 1
6
0 0
0 1
1 0
1 1
2 0
2 1
Sample Output
12
Hint
题意
题解:
只能构成正方形 暴力枚举任意两个点 判断即可AC代码
#include <cstdio> #include <iostream> #include <queue> #include <map> #include <vector> #include <cmath> #include <set> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; typedef pair<int ,int> P; const int N = 500; int vis ; struct node{ int x,y; }p ; int main(){ int n; while (scanf("%d",&n)!=EOF){ memset(vis,0,sizeof(vis)); for (int i = 0; i < n; ++i){ scanf("%d%d",&p[i].x,&p[i].y); p[i].x+=200; p[i].y+=200; vis[p[i].x][p[i].y] = 1; } int ans = 0; for (int i = 0; i < n; ++i){ for (int j = i+1; j < n; ++j){ node a = p[i];node b = p[j]; int dx = a.x-b.x; int dy = a.y-b.y; if (a.x+dy>=0&&a.y-dx>=0&&b.y-dx>=0&&b.x+dy>=0&&vis[a.x+dy][a.y-dx]&&vis[b.x+dy][b.y-dx]){ ans++; } if (a.x-dy>=0&&a.y+dx>=0&&b.y+dx>=0&&b.x-dy>=0&&vis[a.x-dy][a.y+dx]&&vis[b.x-dy][b.y+dx]){ ans++; } } } printf("%d\n",ans/4); } return 0; }
相关文章推荐
- HDU 6055 Regular polygon(几何数学)(多校2)
- 多校9 HDU-6164 Dying Light 几何数学
- LightOJ - 1305 Area of a Parallelogram (数学几何)水
- 【阔别许久的博】【我要开始攻数学和几何啦】【高精度取模+同余模定理,*】POJ 2365 The Embarrassed Cryptographer
- [数学几何]取任意四边形最长边
- OpenGL Mathematics(GLM) - 几何数学库
- 51nod oj 1265 四点共面 【数学几何】
- 【引用】 Cg(C for Graphic)标准函数库之数学函数与几何函数
- Cg(C for Graphic)标准函数库之数学函数与几何函数
- hdu 5430 Reflect(几何基础+数学)
- [高频] 六.数学,几何计算,位运算常见问题
- HDU 6055 Regular polygon(几何)
- HDU 6055 17多校 Regular polygon(计算几何)
- zzulioj 1882: 蛤玮的魔法 (数学几何)水
- HDOJ 5120-Intersection【几何数学】
- ZOJ 1128 Atlantis(几何数学)
- hdoj 5666 Segment ( 数学几何 +快速积)
- poj 1701【数学几何】
- [从头学数学] 第270节 [计算几何] 例题数据生成
- [从头学数学] 第272节 [计算几何] 从线段集连通区域