这种题我一辈子都做不明白。
首先看到 \(0/1\) 串且不影响奇偶性直接考虑奇数位置反转,反转完之后变成 \(10\) 和 \(01\) 互换。
比较好的理解是,双方对应位置的 \(1\) 相匹配,那么最小操作次数就是 \(\sum |x_i - y_i|\),其中 \(x_i\) 是初始第 \(i\) 个 \(1\) 的位置,\(y_i\) 同理,具体证明可以用交换法证一定不优。
但是这个形式仍然不太好计数,我们该怎么办,令 \(a_i\) 为前 \(i\) 个位置 \(1\) 的个数,\(b_i\) 同理,那么代价为 \(\sum |a_i - b_i|\),原因是每次移动恰好改变一个前缀和(不改变前缀和的操作一定无用)。
最后一步就是拆贡献了,对于每个位置,拆其在贡献答案的位置总共贡献了多少次,这是好算的。
当然也有组合大神做到线性。