C. Polygon for the Angle(几何)
程序员文章站
2022-03-30 08:26:34
...
题目链接:http://codeforces.com/contest/1096/problem/C
题目大意:T是测试样例,然后每一次输入一个角度,然后问你在一个n边形里面,能不能构成这个角度,如果能,输出边数,如果没有就输出-1.
具体思路:利用一个性质,四边形内的每个点都能被这个四边形内的最小的角度表示出来,也就是倍数关系。
然后我们打表就可以发现,最多是到179度多,这个时候的边数是360条边,这样的话,我们就直接打表,从3-360条边打表,然后循环就可以了。
AC代码:
#include <bits/stdc++.h>
using namespace std;
# define ll long long
# define mod 998244353
const int maxn = 200+100;
struct node
{
double minn;
double maxx;
} q[maxn];
int main()
{
int T;
for(int i=3; i<=360; i++)
{
q[i].maxx=180.0-360.0/(i*1.0);
q[i].minn=q[i].maxx/((i-2)*1.0);
// cout<<i<<" "<<q[i].maxx<<" "<<q[i].minn<<endl;
}
scanf("%d",&T);
while(T--)
{
int ans=0;
double tmp;
scanf("%lf",&tmp);
for(int i=2; i<=360; i++)
{
if(q[i].minn<=tmp&&q[i].maxx>=tmp)
{
int t=tmp/q[i].minn;
// cout<<i<<" "<<t<<endl;
if(fabs(t-tmp/q[i].minn)<=1e-6)
{
ans=i;
break;
}
}
}
printf("%d\n",ans);
}
return 0;
}
上一篇: CSS - 浮动
推荐阅读
-
C. NN and the Optical Illusion(几何)
-
CodeForces - 1096C Polygon for the Angle (圆周角与圆心角,圆内接多边形)
-
C1. Simple Polygon Embedding——(平面几何)
-
UVA 1644 - Angle and Squares(简单几何)
-
Polygon for the Angle
-
C. NN and the Optical Illusion(几何)
-
计算几何学 | 点的内包 | Polygon-Point Containment | C/C++实现
-
B - Mister B and Angle in Polygon (几何角度问题)
-
C. Polygon for the Angle(几何)
-
CF Round 230 C. Blocked Points 几何,思维