system("pause")?
by AFOed @ 2021-02-01 15:48:32
@[2416813485m](/user/314427)
当然不是这个啦,
by direven @ 2021-02-01 15:49:54
@[direven](/user/459783)
可能的原因有:
1.精度丢失
必然的原因有:
1.min的初始值设错了(不能只取$p_0$和$p_1$,应该要取$p_0$到$p_{n-1}$的$max$值)
ACcode:
```cpp
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
#define PI 3.1415926535
using namespace std;
class Point
{
public:
int x;
int y;
};
int dis(Point p1, Point p2)
{
int dis = (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);
return dis;
}
int main()
{
int n;
cin >> n;
Point point[1000];
for (int i = 0; i < n; i++)
{
cin >> point[i].x >> point[i].y;
}
int min = 0x3f3f3f3fll ;
for (int i = 0; i < n; i++)
{
int max = 0 ;
for (int j = 0; j < n; j++)
{
if ( i == j ) continue ;
if (dis(point[i], point[j]) >= max)
{
max = dis(point[i], point[j]);
}
}
if(max<min){
min = max;
}
}
double area = PI* (double)min;
printf("%.4f",area);
//system("pause");
}
```
by AFOed @ 2021-02-01 15:59:57
@[direven](/user/459783)
其实你把
```cpp
double min = dis(point[0], point[1]);
```
改成
```cpp
double min = 9999999999 ;
```
应该就能AC了
by AFOed @ 2021-02-01 16:01:52
@[2416813485m](/user/314427) 感谢感谢,ok了
by direven @ 2021-02-01 16:03:40