题解 P1927 【防护伞】
直接暴力枚举每一个点
最后求面积最小值就好了
代码
// 此处应有头文件
const double pi = 3.1415926535;
int n;
double ans = 1 << 30; // 2 ^ 30
struct node
{
int x,y;
}s[1005];
double dis(int i , int j) // 勾股定理
{
double a = abs(s[i].x - s[j].x);
double b = abs(s[i].y - s[j].y);
return sqrt(a * a + b * b);
}
int main()
{
cin >> n;
for(int i = 1;i <= n;i++)
cin >> s[i].x >> s[i].y;
for(int i = 1;i <= n;i++)
{
double k = 0;
for(int j = 1;j <= n;j++)
k = max(dis(i , j) , k);
ans = min(k * k * pi , ans);
}
printf("%.4lf\n" , ans); // 保留四位小数
return 0;
}
标签:p1927,原题,int,double,solution,题解
From: https://www.cnblogs.com/iorit/p/18056994