一些很厉害的构造方法(未完待续)
答案的隐藏限制
1. 位运算型
大意: 给定数组,问通过 +-1 更改一些元素使得 "若 \(a_i \& a_j > 0\) 连 \(i,j\)" 连出来的图联通,操作最小次数。
首先毋庸置疑地将所有 0 的点都加个 1。
然后发现将 lowbit 最大的数字减 1 可以覆盖所有 lowbit 更小的数字,对于 lowbit 一样的数字可能还需要处理,再在其中一个末尾加个 1,就能保证联通,于是发现这一段操作次数小于等于 2,属于是一种结论题的常见套路了。这题好就好在总体不是有界限,要加到 1 之后。
精髓都在这个地方:
\(\mathrm{MEX}(\{w_1,\,w_1\& w_2,\,\ldots,\,w_1\& w_2\& \ldots\& w_{k-1}\})\)
发现这个值小于等于 2。
在其不为 0 时,若要让这个值大于 2,需要有 2,1,0,而是不能被与出来的。
2. 数值连续型
大意:选出长度和为 \(m\) 的最少子段使得所有选中的数01个数比与原序列相同。
答案小于等于 2。
这是为什么呢?首先题目意思意味着1的个数是定值。
将序列首尾接成一个环,在这个环上移动一个长度为 \(m\) 的子段,因为答案是均匀变化的,每次1个数变化量不会超过1,是连续的。
而题目条件中的与原序列相同,则意味着这个子段一定存在。
3. 序列操作型
大意:翻转最少的子串数量使得括号序列匹配。
答案小于等于 2。(这个坑以后再添)