题解:CF140A New Year Table

CF140A New Year Table

思路

注意到题目中提到了大圆与小圆相切,我们可以计算由两条经过小圆周长与大圆圆心的切线组成的圆心角的度数。但是这个角度其实不好算,所以我们可以求出它一半的正弦值,也就是 \(b \div (a-b)\),然后用 asin 函数求出其度数(以弧度为单位)。最后答案就是判断 \(2 \cdot \pi \div (2 \cdot b\div (a-b))\) 是否 \(\ge n\)

AC 代码

#include<bits/stdc++.h>
using namespace std;
#define pi 3.14159265358979
double n,a,b,c;
int main(){
	cin>>n>>a>>b;
	if(n<=2) cout<<(n*b<=a?"YES":"NO")<<endl;
	else cout<<((2*pi)/(2*asin(b/(a-b)))+1e-8>n?"YES":"NO")<<endl;
	return 0;
}

AC 记录

posted @ 2025-01-18 09:47  SuperJimmy  阅读(13)  评论(0)    收藏  举报