P3694 邦邦的大合唱站队
\(\text{solution}\)
妙妙的状压 DP(指忽然脑子开窍——会做了)。
首先目标状态肯定是分成若干连续颜色段,我们考虑对于这些段进行状压。
考虑状压当前用了哪些颜色段,然后我们枚举上一次用得哪一段,然后看把这一段覆盖后,有多少个人是不在这个颜色段里的就行了,维护一个前缀和数组,再维护一个颜色个数数组就行了。
但是这道题我认为可以用 \(\text{lowbit}\) 做到更优的复杂度,其总时间复杂度为 \(O(m)\),\(m\) 为 \(0 \sim 2^{m} - 1\) 二进制中 \(1\) 的个数。