您的位置:首页 > 其它

bc+判定正五边形,由于是保证凸性了只需判定边相等+枚举方法好

2015-11-16 17:18 393 查看
点击打开链接
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const double eps = 1e-4;
#define inf 0x3f3f3f3f
double x[5],y[5],ans[5];
double dist(int i,int j){
double tx = x[i] - x[j];
double ty = y[i] - y[j];
return tx * tx + ty * ty;
}
int main(){
int T;
cin >> T;
while (T--){
for (int i = 0;i < 5;i++)
scanf("%lf%lf",&x[i],&y[i]);
for (int i = 0;i < 5;i++) ans[i] = inf;
for (int i = 0;i < 5;i++)
for (int j = 0;j < 5;j++)
if (i != j) ans[i] = min(ans[i],dist(i,j));///好想法,判定五条边是否相等。
int flag = 0;
for (int i = 0;i < 4;i++)
if (fabs(ans[i] - ans[i+1]) > eps){
flag = 1; break;}
if (flag) printf("No\n");
else printf("Yes\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: