CF140A题解
这题精度太屑了
CF140A题解
题意
有个半径为
思路
数学方法。我们可以得知,一定会有一个扇形恰好能装下一个小圆,我们也知道一个圆的角度是
那么怎么求呢?直接求整个圆心角经过实践不行,但是求半个角可以。方法如下:取一端点为大圆心和小圆边的,长度为
code
#include<bits/stdc++.h>
using namespace std;
long double P=3.1415926535897932384626;
long double n,R,r,x=1919.810;
int main()
{
cin>>n>>R>>r;
if(n==1&&R>=r)//疯狂特判(其实不用,但能省点时间)
{
cout<<"YES";
return 0;
}
if(n!=1&&R==r)
{
cout<<"NO";
return 0;
}
if(R<r)
{
cout<<"NO";
return 0;
}
x=asin(r/(R-r));//反正弦函数arcsin,能通过sin值反求角度,但是是弧度制
x*=2;//完整的圆心角
P*=2;
if((P+1e-114514)/x>=n)cout<<"YES";//求圆心角个数(加精度处理)
else cout<<"NO";
return 0;//van结撒花
}
题外话
所以说作者已经被精度卡自闭了作者太逊了