CF1344F Piet's Palette

推歌:シンデレラ

怎么一万年前我修过这个题的题面啊?


我们给 3 个颜色(其实是 4 个)各编一个序号,R 是 1,Y 是 2,B 是 3。然后 mix 相当于查询所有元素的异或和,如果是 0 那么最终就是空白的。但是修改很难维护!

然后发现修改相当于交换两个颜色对应的数字编号,考虑怎么维护编号,发现拆成两位即可。交换 RY 就是把编号二进制的两位交换,交换 RB 就是高位异或上低位,交换 YB 就是低位异或上高位。

所以考虑维护两位相对于初始值的位置关系,因为异或有非常优美的自己异或自己等于 0 即没异或所以是好维护的,每次 mix 就是给定格子的高位和的奇偶性和低位和的奇偶性,可以列出若干个方程。最后高消解异或方程组即可,用 bitset 优化可以做到 \(O(\frac{n^3}{\omega})\)

posted @ 2026-03-09 15:53  Xuan_tmp  阅读(2)  评论(0)    收藏  举报