码迷,mamicode.com
首页 > 其他好文 > 详细

【计算几何】【圆反演】计蒜客17314 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 G. Finding the Radius for an Inserted Circle

时间:2017-09-24 20:24:43      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:freopen   一个   printf   题意   mat   space   相同   bsp   log   

题意:给你三个半径相同的圆,它们切在一起,然后让你往缝里一个一个地塞圆,问你塞到第k个的半径是多少。

技术分享

就把上面那两个圆的切点当成反演中心,然后会反演成这个样子,两个平行直线和一个圆。

技术分享

 

然后就是往那个圆上面再塞圆,然后反演回去算面积就行了。

 

#include<cstdio>
#include<cmath>
using namespace std;
const double pi=3.14159;
int n,K;
double R,anss[12];
int main(){
	//freopen("g.in","r",stdin);
	scanf("%d%lf",&n,&R);
	double ynow=sqrt(3.0)/2.0/R-1.0/2.0/R;
	for(int i=1;i<=11;++i){
		double ynex=ynow+1.0/R;
		anss[i-1]=(1.0/ynow-1.0/ynex)*0.5;
		ynow=ynex;
	}
	for(int i=1;i<=n;++i){
		scanf("%d",&K);
		printf("%d %d\n",K,(int)anss[K]);
	}
	return 0;
}

【计算几何】【圆反演】计蒜客17314 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 G. Finding the Radius for an Inserted Circle

标签:freopen   一个   printf   题意   mat   space   相同   bsp   log   

原文地址:http://www.cnblogs.com/autsky-jadek/p/7588115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!