此题主要考验枚举,从此题的数据中可以看出,根据确切的体积,我们可以通过枚举货箱的两个边长来枚举所有可能的边长组合,包括不同顺序(即旋转)的组合也视为不同的组合,确定边长后放置方式的数量直接根据公式计算即可
#include<iostream>
#include<cstring>
#include<algorithm>
有一个长方体仓库,长、宽、高分别为 A、B、C(单位:米),占据坐标范围 (0,0,0) 到 (A,B,C)。现在要放置一个体积固定为 K 的长方体货箱,货箱的各边长度必须为正整数米,且放入时各边须与仓库对应的墙壁平行,所有顶点落在整数坐标上。
对于一组边长 (a,b,c),满足 a×b×c=K,且 a≤A、b≤B、c≤C,该货箱在仓库内的放置方式数为 (A−a+1)×(B−b+1)×(C−c+1)。你需要求出所有合法边长组合中,放置方式数量的最大值。如果没有任何合法边长,答案为 0。
数据范围:测试数据组数 T 满足 1≤T≤1000;仓库边长 A,B,C 满足 1≤A,B,C≤1000;货箱体积 K 满足 1≤K≤109。保证所有测试数据中 A 的总和、B 的总和、C 的总和均不超过 1000。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.