一道贼难的递推

据说还是浙江省选

题目大意是这样:

在桌子的边缘上划分出 2n2n 个位置并按顺时针把它们标号为 1,2,,2n1,2,\ldots,2n,然后把 nn 个硬币放在标号为奇数的位置上。接下来每次按如下操作:在任意两个硬币之间放上一个硬币,然后将原来的硬币拿走;所放硬币的正反面由它两边的两个硬币决定,若两个硬币均为正面朝上或反面朝上,则所放硬币为正面朝上,否则为反面朝上。

DFS(想都不想肯定要剪枝)

递归结束条件:

  1. 当层数 pp 达到 mm 层时
  2. 当体积已经超过 nn 时或得到的表面积比之前的最优值小时,更新 ansans

这道题以下几个剪枝:

  1. 当此时体积加上预处理的最大体积大于 nn 时,returnreturn
  2. 当前表面积加上最优表面积大于 ansans 时,returnreturn