Codeforces 820B - Mister B and Angle in Polygon

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;
} 

 

posted @ 2017-08-16 17:20  Wisdom+.+  阅读(301)  评论(0编辑  收藏  举报