P7967 [COCI 2021/2022 #2] Magneti
首先放置这种问题考虑连续段 DP。
发现对于两个磁铁,只需要探究其范围较大的那一个是什么,因此我们按照 \(r\) 从小到大排序,这样将合并放到 \(i\) 考虑时无需考虑前面的范围是多少,因为既然满足了 \(i\) 就肯定满足前面任意一个。
套路的,设 \(f_{i, j, k}\) 为前 \(i\) 个磁铁,形成 \(j\) 组,占用一共 \(k\) 个位置的方案数。
那么就分三种:
- 单开一段,此时不需要考虑范围。
- 接在一段段头或段末,这个时候考虑范围。
- 合并两段,这个时候考虑范围。
你发现这个 DP 的精妙性在于,只有在合并的时候我们才会讨论范围的影响,这保证了我们 DP 始终只会考虑当前元素的范围,主要还是发现范围的趋大性,按照 \(r\) 排序后即可忽略较小的范围。
这也是一种重要的思想,遇到限制类题目首先考虑能否排序。

浙公网安备 33010602011771号