平面几何。
首先所有点都是在圆上的。
然后任意三点的内心可以转变成角平分线和圆的交点的垂心。
然后用欧拉线定理转变成\(E(重心)\times 3\)。
代码非常好写:
const double pie=3.1415926535897932384626433832795;
const int MAXN=3003;
double x=0,y=0;
int n,l;
void get(double t,int tot){
x+=cos(pie*2*t/l)*tot;
y+=sin(pie*2*t/l)*tot;
}
int t[MAXN];
int main(){
scanf("%d%d",&n,&l);
rb(i,1,n) scanf("%d",&t[i]);
rb(i,1,n){
rb(j,i+1,n){
get((t[i]+t[j])/2.0,i-1+n-j);
get((t[i]+t[j])/2.0+l/2.0,j-i-1);
}
}
x/=1ll*n*(n-1)*(n-2)/6;
y/=1ll*n*(n-1)*(n-2)/6;
printf("%.16f %.16f\n",x,y);
return 0;
}
原文:https://www.cnblogs.com/gary-2005/p/14762511.html