Loading

5.13 CW 模拟赛 T1. 灯

前言

考虑这个题还是很牛的

首先判断时间, 不要管你那傻逼直觉
去感受时间

思路

首先不难发现 \(a, b\) 相当于给定了一个约束: 第 \(i\) 个位置的覆盖次数的奇偶性, 记为 \(s_i\)

考虑我们的操作是一个区间异或 \(1\), 注意到异或 \(1\) 操作的反操作也是异或 \(1\), 所以我们可以把区间操作通过差分转化为两个单点操作
于是问题转化成在 \(m\) 个点对上, 你可以同步进行一个赋 \(1\) 的操作, 求有多少种方法从最初的全 \(0\) 产生 \(s\)

进行一些简单的模拟如下, 用一条边来连接两个必须一起被修改的点
pEjpMfs.png

不妨假设我们已经有一组合法的答案, 那么如何调整成其他情况呢
不难发现倘若你从任意一个点开始, 将一条边从赋 \(1\) 变为赋 \(0\), 那么这会导致一些传递性的约束

考虑传递长啥样
不妨提取出一个连通块
pEjegfK.png

于是方案数为 \(2^{非树边条数}\), 构造方案显然, 「树」指任意生成树
每个连通块之间互不影响

总结

区间操作通过差分转化为两个单点操作, 前提是可差分: 拥有结合律和逆运算

约束传递性问题考虑对传递性建边

posted @ 2025-05-14 11:16  Yorg  阅读(14)  评论(0)    收藏  举报