solution-p1927

题解 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;
}
posted @ 2024-03-06 16:55  iorit  阅读(12)  评论(0)    收藏  举报