首页 > 其他 > 详细

AGC 039 D 题解

时间:2021-05-13 01:12:24      阅读:14      评论:0      收藏:0      [点我收藏+]

AGC 039 D 题解

D - Incenters (atcoder.jp)

平面几何。

首先所有点都是在圆上的。

然后任意三点的内心可以转变成角平分线和圆的交点的垂心。

然后用欧拉线定理转变成\(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;
}

AGC 039 D 题解

原文:https://www.cnblogs.com/gary-2005/p/14762511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!