hdu 6055 Regular polygon
来源:互联网 发布:centos 安装lamp环境 编辑:程序博客网 时间:2024/05/31 13:14
枚举两个点,然后计算出正方形两外两个点,然后查找有没有这两个点。
在此之前真不知道怎么根据两点算另外两点,几何都白学了
因为每个边都枚举一次,所以要除以4
#include <bits/stdc++.h>#define ll long longusing namespace std;struct Point{ int x,y;} p[555];set<pair<int,int>> sets;int solve(Point a,Point b){ int x=a.x-b.x; int y=a.y-b.y; int ans=0; if(sets.count(make_pair(a.x+y,a.y-x)) > 0&& sets.count(make_pair(b.x+y,b.y-x)) > 0) ++ans; if(sets.count(make_pair(a.x-y,a.y+x)) > 0&& sets.count(make_pair(b.x-y,b.y+x)) > 0) ++ans; return ans;}int main(){ int n,a,b; while(~scanf("%d",&n)) { sets.clear(); for(int i=0; i<n; i++) { scanf("%d%d",&a,&b); p[i].x=a; p[i].y=b; sets.insert(make_pair(a,b)); } int ans=0; for(int i=0; i<n; i++) for(int j=i+1; j<n; j++) ans+=solve(p[i],p[j]); printf("%d\n",ans/4); }}
阅读全文
0 0
- [HDU]-6055 Regular polygon
- hdu-6055-Regular polygon
- Regular polygon HDU 6055
- hdu--6055--Regular polygon
- HDU 6055 Regular polygon
- hdu 6055 Regular polygon
- hdu 6055 Regular polygon
- HDU 6055 Regular polygon
- hdu 6055 Regular polygon
- hdu 6055 Regular polygon
- HDU 6055 Regular polygon
- HDU 6055 Regular polygon
- HDU 6055 Regular polygon
- HDU-6055 Regular polygon
- HDU-6055-Regular polygon
- 【HDU 6055 Regular polygon】+ map
- Regular polygon(HDU 6055)
- HDU 6055 Regular polygon【几何】
- Protecting the Flowers
- java高级特性之--常用类
- zoj 1201 Inversion 水题~
- nyoj 题目12:喷水装置(二)贪心算法
- S
- hdu 6055 Regular polygon
- c++ STL vector如何删除
- [BZOJ]1717 [Usaco2006 Dec]Milk Patterns 二分答案
- Codeforces 8C Looking for Order(状压DP)
- GridView长按短按冲突
- Java的一些小总结
- Comparable与Comparator的区别
- DAY45 数据库--MySQL2
- $("#id")[0]问题