pku1190 cake

来源:互联网 发布:马尚布鲁克斯cba数据 编辑:程序博客网 时间:2024/06/14 18:30

         生日蛋糕这么经典的搜索剪枝我以前都懒得做,难怪去年不给我省一……

         题目大意应该都很清楚,问题就是剪枝怎么减。

         首先用上下界剪枝——如果当前剩余层数所能形成的最小体积都比剩余体积大就应该减掉。同理,如果能形成的最大体积比剩余体积小也剪掉,只不过后者我懒得花时间写了,直接进行下一个剪枝。

         接着呢是最优性剪枝——如果当前剩余层数所能形成的最小表面积比当前的最优解大,显然应该剪掉。

         然后我们再结合一些不等式的小知识优化优化吧!

         对于剩余体积 vleft 和剩余层数 dep 我们能得到如下的废话关系:

 

         它有什么用呢?当 取得最小值时, 取得最大值,这样我们就确定了 的上界!

         最后还有一个小优化!我们发现体积公式和面积公式挺有联系啊!我们尝试着约分一下就得到了这样的东西:

 

         用不等式的传递性推导出来的这个剪枝十分给力!而且只需要短短的一句话!

         当然解题报告看似简单,实际操作中是需要一定思考的!