#2017 Multi-University Training Contest
来源:互联网 发布:数据研究中心美国大学 编辑:程序博客网 时间:2024/06/07 18:52
“劝退赛第二场”
# HDU 6055 Regular polygon
题意:二维平面上给你一些整点(关键),求组成的正多边形个数。
分析:整点很关键,在平面上构成的正多边形只有正四边形(证明链接)。这样一来问题就简单很多啦,只需要枚举任意两个点,由此获得其他两个点然后判断能否在 INPUT 中找到。对于查找可以使用 set + count( ) / 二分查找,俱乐部有人用 map 却一直 TLE 。
代码如下:
#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;const ll mod = 1e9+7;const ll N = 505;struct node { int x; int y; bool operator<(const node a) const { if(x == a.x)return y < a.y; else return x < a.x; }} a[N];int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); int n; while(cin>>n){ int ans=0; set<node> ss; for(int i=0;i<n;i++){ cin>>a[i].x>>a[i].y; ss.insert(node{a[i].x,a[i].y}); } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ int x1,y1,x2,y2; x1 = a[i].x + (a[i].y - a[j].y); y1 = a[i].y - (a[i].x - a[j].x); x2 = a[j].x + (a[i].y - a[j].y); y2 = a[j].y - (a[i].x - a[j].x); if(ss.count(node{x1,y1}) && ss.count(node{x2,y2})) ans++; x1 = a[i].x - (a[i].y - a[j].y); y1 = a[i].y + (a[i].x - a[j].x); x2 = a[j].x - (a[i].y - a[j].y); y2 = a[j].y + (a[i].x - a[j].x); if(ss.count(node{x1,y1}) && ss.count(node{x2,y2})) ans++; } } cout<< ans/4 <<endl; } return 0;}
JNU ACM ICPC
WYC
阅读全文
0 0
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- jQuery EasyUI中的Layout布局(二)
- CS231n课程笔记翻译8:神经网络笔记 part3
- [leetcode] 231. Power of Two
- 剑指offer题65
- fastText原理及应用
- #2017 Multi-University Training Contest
- 矩阵中的路径—递归
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 网页打开本地应用程序
- Java学习之ArrayList和LinkedList
- cartographer源码分析(21)-sensor-ordered_multi_queue.h
- ios 基础控件系列之 UIScrollView 初识
- xynu第二次比赛
- jsp基础