题目大意

​ 求边长为aa的凸正nn面体收缩kk次后的面数和边长。

​ 一次收缩定义为作该几何体所有面中心的三维凸包。

分析

image-20220801013418638

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int n;
signed main()
{
cin>>n;
while(n--){
int n,k;
double a;
cin>>n>>a>>k;
if(n!=4&&n!=6&&n!=8&&n!=12&&n!=20) {
puts("impossible");
continue;
}
cout <<"possible"<<" ";
while(k--){
if(n==4) n = 4,a = a/3;
else if(n==6) n = 8, a=a/sqrt(2);
else if(n==8) n = 6,a = a*sqrt(2)/3.0;
else if(n==12) n = 20,a= a*(3*sqrt(5.0)+5.0)/10.0;
else if(n==20) n = 12,a = a*(sqrt(5)+1)/6.0;
}
printf("%lld %.12f\n",n,a);
}
return 0;
}