ABC396 Solution E-G

哎哎,E 怎么吃了好几发罚时。爆炸了/ll

E - Min of Restricted Sum

每一位的取值互不影响,所以我们按位考虑。

假设现在在第 \(k\) 位,若 \(z_i\) 的第 \(k\) 位为 \(1\) 则可以看做 \(a_{x_i}\neq a_{y_i}\),否则 \(a_{x_i}= a_{y_i}\)(这里 \(a_i\) 指的是实际上 \(a_i\) 的第 \(k\) 位)。

把相等的限制用并查集缩起来,此时不相等的限制相当于给图染色使得相邻两个点颜色不同。

我们对每个连通块分别考虑,如果染色中出现冲突直接无解,否则选择出现次数较小的颜色将其赋为 \(1\)

时间复杂度 \(O(n\log V)\)

F - Rotated Inversions

考虑从 \(k=i-1\) 的答案推出 \(k=i\) 的答案。发现其实就是找出 \(A_i=M-k\) 的数并且将它们赋值为 \(-k\),因为逆序对只依赖于相对大小关系。

考虑把一个最大数变成最小数会发生什么,首先逆序对会减去这个数往后所有小于它的数,然后再加上往前所有大于它修改后的值的数。发现除了等于它的数(即也在这回合修改)外其它的数必定全部选到。直接找出前后有哪些等于其的数即可。

一开始求逆序对使用树状数组即可。时间复杂度 \(O(n\log m)\)

G - Flip Row or Col

首先肯定是状压。因为最后存在行翻转这个东西不好处理,考虑求出有多少行走 \(c\) 步能到某个状态 \(S\)(即对列操作的状态)。这样答案的贡献就是 \(\min(c,H-c)\) 了。直接 dp 即可。我场上咋不会???

posted @ 2025-03-13 17:35  UniGravity_qwq  阅读(64)  评论(0)    收藏  举报