首页 > 代码库 > Codeforces Round #421 B
Codeforces Round #421 B
B. Mister B and Angle in Polygon
题意:给你一个正n边形(每个点顺时针依次为1 2 3...n),一个角度a,从多边形中任选3个点A B C 求最接近a的角ABC 输出ABC
思路:将n多边形外接一个圆,可知,当2个点确定的时候,角度就已经确定了(只考虑小于180度的情况),所以,确定一个点之后暴力另一个点就可以求得所有情况了(注意只要暴力到n-2就可以了)
AC代码:
#include "iostream" #include "string.h" #include "stack" #include "queue" #include "string" #include "vector" #include "set" #include "map" #include "algorithm" #include "stdio.h" #include "math.h" #define ll long long #define bug(x) cout<<x<<" "<<"UUUUU"<<endl; #define mem(a) memset(a,0,sizeof(a)) using namespace std; const int N=1e5+100; int n,a; double an,an1,ab=365,ans; int main(){ cin>>n>>a; for(int i=1; i<n-1; ++i){ an=180.0*i/n; if(fabs(an-a)<ab){ ab=fabs(an-a); ans=i+1; } } if(ans==2) cout<<"1 3 "<<ans; else cout<<"1 "<<ans+1<<" "<<ans; return 0; } /* 3 15 4 67 4 68 */
Codeforces Round #421 B
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。