Educational Codeforces Round 87 (Rated for Div. 2) 参与排名人数11499,比赛前遇到2次延时,17:05-17:15,17:15-17:20
[codeforces 1354C2] Not So Simple Polygon Embedding 几何画板
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址http://codeforces.com/contest/1354/problem/C2
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
C2 - Not So Simple Polygon Embedding | GNU C++17 | Accepted | 30 ms | 0 KB |
没想到能在赛后独立做出该题,赛后,怀揣把玩心态,进行研究,有退路(大不了调出他人代码来研究),在用几何画板(一种绘图软件)进行把玩的过程中,竟然发现了规律,还将该题AC。这种感觉真好。
研究了正6边形
研究了正10边形
以正6边形为例,找规律
以正10边形为例,找规律
读者明白了上述过程,跟着下面的AC代码,很快就能弄懂该题
#include <stdio.h>
#include <math.h>
#define M_PI 3.14159265358979323846
int main(){
int t,n,n1,n2;//n1代表蓝边对应正多边形的边的数量
double r,a,b,c,ans;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
n1=n/2,n2=n-n1;//n2代表红边对应正多边形的边的数量
n*=2;
a=2*M_PI/n;//正多边形一条边对应的圆心角
r=1.0/2/sin(a/2);//正多边形外接圆的半径计算
b=2*r*sin(a*n1/2);//求蓝边
c=2*r*sin(a*n2/2);//求红边
ans=(b+c)/sqrt(2);
printf("%.9lf\n",ans);
}
return 0;
}