lightoj 1297(三分)

 

传送门: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\n",cas++,calc(mid));

    }

}
View Code

 

你可能感兴趣的:(li)