题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
题意简述:中文题。
解题思路:搜索顺序的选择由于R和H是从下到上递减,所以体积也是从下到上递减,因此选择从下到上的搜索顺序有利于判断当前情况是否可行。此外,注意到表面积包括每层蛋糕的侧面积和裸露的顶面积。确定了最底层的蛋糕就确定了每层蛋糕裸露的顶面积之和,需要考虑的只剩下每层蛋糕的侧面积。因此这样的搜索顺序有利于判断是否可能出现比已知最优解更优的解我们设当前为第i层蛋糕,上一层蛋糕的半径和高度为lastr,lasth,当前的面积为S,余下的体积为leftv.我们可以用(i,lastr,lasth,leftv,S)表示一个状态.初始状态为(M-1,Rm,Hm,N,R*R*H,R*R+2*R*H),Rm,Hm为第m层的半径和高,R*R*H表示第一层的体积R*R+2*R*H表示顶面积加侧面积,即当前总面积.目标状态(0,R1,H1,0,S),其中R1,H1为第一层的半径和高,S表示总面积.于是我们的目标是找到一条路径从初始节点到任意目标节点,并且S最小.
代码: