题解:SP1681 CYLINDER - Cylinder
Code_to_Win · · 题解
题解:SP1681 CYLINDER - Cylinder
一道很水的几何构造题,难度像红。
思路
一共有两种切割方法,分别是拿第二部分的长和宽作为高卷成圆柱来匹配第一部分的圆,选大的那个即可。
Code
#include<bits/stdc++.h>
#define int double
using namespace std;
const int pi=acos(-1.0);
int vol1(int a,int b){
int r=a/(2*pi);
return pi*r*r*(b-2*r);
}
int vol2(int a,int b){
int r=b/(2*pi+2);
if(r>a/2) r=a/2;
return pi*r*r*a;
}
signed main(){
int a,b;
while(cin>>a>>b){
if(a==0 and b==0) break;
printf("%.3lf\n",max(vol1(a,b),vol2(a,b)));
}
return 0;
}
题解来之不易,点个赞再走吧……