传送门:Largest Box
题意:长度为L宽度为W的纸四个角去掉x*x的正方形,然后形成一个长方体,问能组成长方体的最大体积为多少。
分析:三分x求最值。
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define N 100010 #define mod 1000000007 #define LL long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; const double eps=1e-8; double L,W; double calc(double x) { return (L-2*x)*(W-2*x)*x; } int main() { int T,cas=1; scanf("%d",&T); while(T--) { scanf("%lf%lf",&L,&W); double l=0,r=min(L,W)/2.0,mid,mmid; while(l<r) { mid=(l+r)/2.0; mmid=(mid+r)/2.0; if(calc(mid)<=calc(mmid))l=mid+eps; else r=mmid-eps; } printf("Case %d: %.10lf ",cas++,calc(mid)); } }