【2017 Multi-University Training Contest - Team 2】 Regular polygon
2017 multi Contest Training Team regular University polygon
2023-09-14 09:03:49 时间
给你n个点整数点;
问你这n个点,能够组成多少个正多边形
整点只能构成正四边形.
则先把所有的边预处理出来;
枚举每某两条边为对角线的情况;
看看这两条对角线能否组成一个正方形;
可以的话,递增答案.
1
(排序的时候边的数目和点的弄混了)
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 500;
struct abc{
int x[2],y[2],dis;
};
abc bian[N*N+100];
int x[N+10],y[N+10];
int n,tot;
int sqr(int x){
return x*x;
}
int get_dis(int i,int j){
return sqr(x[i]-x[j])+sqr(y[i]-y[j]);
}
bool cmp(abc a,abc b){
return a.dis < b.dis;
}
main(){
while (~scanf("%lld",&n)){
int ans = 0;
tot = 0;
for (int i = 1;i <= n;i++)
scanf("%lld%lld",&x[i],&y[i]);
for (int i = 1;i <= n-1;i++)
for (int j = i+1;j <= n;j++){
tot++;
bian[tot].x[0] = x[i],bian[tot].y[0] = y[i];
bian[tot].x[1] = x[j],bian[tot].y[1] = y[j];
bian[tot].dis = get_dis(i,j);
}
sort(bian+1,bian+1+tot,cmp);
for (int i = 1;i <= tot;i++){
int j = i;
while (j+1 <= tot && bian[j+1].dis == bian[i].dis) j++;
for (int k = i;k <= j-1;k++)
for (int l = k+1;l <= j;l++){
int x1 = bian[k].x[0],y1 = bian[k].y[0];
int x2 = bian[k].x[1],y2 = bian[k].y[1];
int x3 = bian[l].x[0],y3 = bian[l].y[0];
int x4 = bian[l].x[1],y4 = bian[l].y[1];
if ( (x1+x2==x3+x4) && (y1+y2 == y3+y4) ){
if ( (x2-x1)*(x4-x3) + (y2-y1)*(y4-y3) == 0){
ans++;
}
}
}
i = j;
}
printf("%lld\n",ans);
}
return 0;
}
相关文章
- [蓝桥杯2017初赛]正则问题 递归
- 听说2017你想写前端?
- 【CTF WEB】GCTF-2017读文件
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 G】Query on a string
- 【2017 ACM/ICPC 乌鲁木齐赛区网络赛环境测试赛 E】蒜头君的排序
- 【2017 Multi-University Training Contest - Team 10 】Monkeys
- 【2017 Multi-University Training Contest - Team 10】Schedule
- 【2017"百度之星"程序设计大赛 - 初赛(A)】数据分割
- 【2017 Multi-University Training Contest - Team 6】Inversion
- 【2017 Multi-University Training Contest - Team 9】Numbers
- 【2017 Multi-University Training Contest - Team 8】Hybrid Crystals
- 【2017 Multi-University Training Contest - Team 5】Rikka with Competition
- 【2017 Multi-University Training Contest - Team 4】Time To Get Up
- 【2017 Multi-University Training Contest - Team 3】Kanade's sum
- 【2017 Multi-University Training Contest - Team 2】Is Derek lying?
- 【2017 Multi-University Training Contest - Team 1 1001】Add More Zero
- 未找到导入的项目“C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDEVCVCT
- 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-29期...
- 2017 阿里技术-年度精选
- 2017 Multi-University Training Contest - Team 2
- 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017