我是靠谱客的博主 着急乐曲,最近开发中收集的这篇文章主要介绍【hdu5533】【2015ACM/ICPC亚洲区长春站】Dancing Stars on Me 题意&题解&代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5533
题意:
给出n个点的坐标问这些点是否能构成正n边形。
题解:
因为数据范围给的很小,n<=100,我们就可以暴力算出一个点与其他所有点的距离,因为要构成正n边形,画个图后就会知道一个点与它最近的点一定要连边,因为正多边形边长都要相同,因此直接枚举判断就可以。
代码:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<math.h>
using namespace std;
int n,T,x[105],y[105],cnt;
double dis[105][105];
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++)
{
int lx=abs(x[j]-x[i]);
int ly=abs(y[j]-y[i]);
double xx=(double)lx*1.0;
double yy=(double)ly*1.0;
dis[i][j]=sqrt(xx*xx+yy*yy);
dis[j][i]=dis[i][j];
}
int flag=0;
for (int i=1;i<=n;i++)
{
cnt=0;
double mmin=99999.9;
for (int j=1;j<=n;j++)
{
if (i==j) continue;
if (dis[i][j]<mmin)
{
cnt=1;
mmin=dis[i][j];
}
else if (dis[i][j]==mmin)
cnt++;
}
if (cnt<2)
{printf("NOn");flag=1;break;}
}
if (!flag)
printf("YESn");
}
}
最后
以上就是着急乐曲为你收集整理的【hdu5533】【2015ACM/ICPC亚洲区长春站】Dancing Stars on Me 题意&题解&代码的全部内容,希望文章能够帮你解决【hdu5533】【2015ACM/ICPC亚洲区长春站】Dancing Stars on Me 题意&题解&代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复