求边长为a的凸正n面体收缩k次后的面数和边长。
一次收缩定义为作该几何体所有面中心的三维凸包。
分析

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; }
|