题解:SP1681 CYLINDER - Cylinder

· · 题解

题解: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;
}

题解来之不易,点个赞再走吧……