P4448 [AHOI2018初中组] 球球的排列
梦寐以求的组合题,一直没敢做。
其实 \(O(n^3)\) 的 DP 做法也是很棒的!
完全平方数有个性质就是两两合并可以成团,现在问题就变成了一些地方有一些颜色,问相邻位置颜色不同的排列数。
考虑每种颜色每种颜色的考虑,DP 数组记录一下目前和这种颜色相同的相邻颜色相同对个数和和这种颜色不同的相邻颜色相同对个数,那么每次可以分为以下 \(3\) 种情况转移:
- 将目前颜色插入到一个异色对中间。
- 将目前颜色插入到一个同色对中间。
- 比较特殊的是,插入到一个连续颜色与其相同的段中,这也就是我们状态需要记录 \(3\) 维的意义所在。
仔细讨论转移,时间复杂度 \(O(n^3)\)。

浙公网安备 33010602011771号