5.13 CW 模拟赛 T1. 灯
前言
考虑这个题还是很牛的
首先判断时间, 不要管你那傻逼直觉
去感受时间
思路
首先不难发现 \(a, b\) 相当于给定了一个约束: 第 \(i\) 个位置的覆盖次数的奇偶性, 记为 \(s_i\)
考虑我们的操作是一个区间异或 \(1\), 注意到异或 \(1\) 操作的反操作也是异或 \(1\), 所以我们可以把区间操作通过差分转化为两个单点操作
于是问题转化成在 \(m\) 个点对上, 你可以同步进行一个赋 \(1\) 的操作, 求有多少种方法从最初的全 \(0\) 产生 \(s\)
进行一些简单的模拟如下, 用一条边来连接两个必须一起被修改的点

不妨假设我们已经有一组合法的答案, 那么如何调整成其他情况呢
不难发现倘若你从任意一个点开始, 将一条边从赋 \(1\) 变为赋 \(0\), 那么这会导致一些传递性的约束
于是方案数为 \(2^{非树边条数}\), 构造方案显然, 「树」指任意生成树
每个连通块之间互不影响
总结
区间操作通过差分转化为两个单点操作, 前提是可差分: 拥有结合律和逆运算
约束传递性问题考虑对传递性建边


浙公网安备 33010602011771号