820B - Mister B and Angle in Polygon
思路:
由于正多边形以某个顶点分成的三角形后以这个点为顶点的角都相等,所以可以确定两个点为相邻点,只要再找一个点就够了。
证明如下
以正八边形为例,正多边形可推广。
如图所示:∠1=∠2=∠3=∠4=∠5=∠6=∠7=∠8。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),sizeof(a)) #define pii pair<int,int> #define mp make_pair const int INF=0x3f3f3f3f; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; double a; cin>>n>>a; double t=180.0/n; double d=INF; double ang=0; int ans=0; for(int i=3;i<=n;i++) { ang+=t; if(fabs(ang-a)<d) { d=fabs(ang-a); ans=i; } } cout<<2<<' '<<1<<' '<<ans<<endl; return 0; }