ABC159C Maximum Volume
Maximum Volume
题目大意:
给你一个立方体的三条相邻的棱长总和 \(L\) ,求该立方体的体积最大为多少(棱长不一定为整数)(答案保留 \(12\) 位小数)。
说白了就是已知 \(a + b + c = L\) ,要求 \(a \times b \times c\) 的最大值,但 \(a\) 、 \(b\) 、 \(c\) 不一定是整数且它们大于 \(0\)。
由题意得:\(a > 0\) 、 \(b > 0\) 、 \(c > 0\) ,则 \(ans = a \times b \times c\) 。由均值不等式得到 \(a \times b \le (a^2 + b^2) / 2\) ,所以 \(ans \le (a^2 + b^2) \times c / 2\) 。因此当 \(ans\) 最大时,满足 \(a \times b \times c = (a^2 + b^2) \times c / 2\) 。因为 \(c > 0\) ,所以 \(a \times b = (a^2 + b^2) / 2\) ,解得 \(a = b\)。同理可得,当 \(ans\) 最大时,\(b = c\) 。所以当 \(ans\) 最大时, \(a = b = c = \frac{L}{3}\) ,即 \(ans_{max} = (\frac{L}{3})^3\)。
所以,代码就变得非常简单了:
#include <bits/stdc++.h>
using namespace std;
int main(){
double l;
scanf("%lf", &l);
printf("%.12f\n", l/3*l/3*l/3); //这里就不多解释了,记得保留12位小数
return 0;
}
然而事实上,本题只需简单地打一下表就可以知道这显而易见的答案 o(TヘTo)。