我们如何算法计算最大可能容量的盒子?

kus*_*sur 2 algorithm

约翰尼需要为他的物理课项目制作一个矩形框.他买了P厘米的电线和S cm2的特殊纸.他想用所有的线(用于12个边缘)和纸张(用于6个边)来制作盒子.

Johnny可以制作的最大音量是多少?

输入

第一行包含t,测试用例数(约10).然后是t测试案例.每个测试用例在一行中包含两个整数P和S(1≤P≤40000,1≤S≤20000).您可以假设对于给定的输入案例始终存在最佳解决方案.

产量

对于每个测试用例,打印一个实数,该数字是Johnny可以制作的最大容量,舍入到两个小数位.

示例输入:

2
20 14
20 16
Run Code Online (Sandbox Code Playgroud)

输出:

3.00
4.15
Run Code Online (Sandbox Code Playgroud)

输出细节

第一种情况:最大盒子的尺寸可以是3,1和1.

第二种情况:最大盒子的尺寸可以是7/3,4/3和4/3.

这是来自www.codechef.com的实践问题.这个名字是" 最好的盒子 ".我不想要这个代码.我想知道的是我们如何解决这个问题?任何帮助,将不胜感激.提前致谢.

ami*_*mit 5

你实际上是想解决:

maximize V=a*b*c

subject to constraints:

4a+4b+4c = P 
2ab + 2ac + 2bc = S
Run Code Online (Sandbox Code Playgroud)

这是一个数学问题,可以使用拉格朗日乘数来解决(将剩下的作为一个练习开发给你 - 它主要是技术性的,如果慢慢地完成,应该不是问题).

  • @KunalSuri绝对是 - 这是获得解决方案最快捷的方式.你当然可以尝试迭代地使用a/b/c来获得最大值,但这几乎肯定会花费更长的时间来运行,得到一个不精确的答案,甚至可能比找到解决方案的形式更难以编码事先做一点数学. (2认同)