链接:http://codeforces.com/contest/820/problem/B
分析:这算是平面几何题??由于是正多边形,任意四点共圆,同一条弦所对的圆周角都相等,不妨设v1=2,v2=1,记∠2 1 3为ang,则∠2 1 k (k<=n)为 (k-2)ang,枚举或者二分一下求最接近a的即可。
1 #include<iostream> 2 using namespace std; 3 double abs(double t){ 4 if(t>=0)return t; 5 return -t; 6 } 7 int main(){ 8 int n,a; 9 cin>>n>>a; 10 if(a>=180-360/n){ 11 cout<<1<<' '<<2<<' '<<3<<endl; 12 return 0; 13 } 14 if(a<=180/n){ 15 cout<<2<<' '<<1<<' '<<3<<endl; 16 return 0; 17 } 18 double t=180/n; 19 double ABS=10000; 20 int ans=1; 21 for(int k=1;k<n;k++){ 22 if(abs((180.0*k)/n-a)<ABS){ 23 ABS=abs(180.0*k/n-a); 24 ans=k; 25 } 26 } 27 cout<<2<<' '<<1<<' '<<2+ans<<endl; 28 return 0; 29 }