剪枝很重要呀。。。
0MS靠RP。。。
思路:
搜索这是肯定的。主要是剪枝。前期有个预处理工作是找各层的极限。就是他不是说各层都是int的正整数吗,还有严格的递增关系。那每层就肯定有个下限或上限(随便怎么说了)。p_s, p_v就是做这工作的。看看函数吧:
第一个参数是体积,第二个是高度,第三个是个半径,第四个是个层数,第五个是个表面积。
初始的时候,半径给个最大值,高度也给了最大值。所以之后搜索半径和高度是都是递减搜的。
再说剪枝:
除了我上面说的预处理可以用,还有个就是在每一层都可以估计一下表面积的下限值。剩下的体积是V吧,剩下的面积最少是多少呢,S=V/(2*R*pi),上一层R最大值是知道的,这样S下限有了,可以和之前的min_face比较,剪掉很多枝, 再求下一步的H时,注意取当前H和
V与当前R共同约束的H的最小值。