11.15 T2
每一位是独立的 把操作拆到每一位上
如果算出的利用 \(C\) 能组合出哪些些数组 记为 \(tot\) 那么答案就是 \(\sum tot * C\)
考虑 \(k = 0\) 的情况 只能对一个区间异或 \(0\) 或者 \(1\)
对序列进行差分 将区间异或消成单点
将一个操作变成 \(l\) 到 \(r + 1\) 的边 把所有边弄出来 不同连通块之间不会相互影响 对每个连通块进行考虑
考虑一个连通块的任意一棵生成树 设有 \(n\) 个节点 考虑这棵树有多少种方案 每次操作异或两个节点 所以树上 \(1\) 的个数一定是偶数 对一个连通块 考虑每条边是否操作 最多只有 \(2^{n - 1}\) 种方案 用一个点的父亲控制这个点的值是 \(0\) 还是 \(1\) 可以保证用操作将除了根以外的所有点弄成需要的颜色 而根的位置的颜色无法通过父节点改变 所以最少有 \(2^{n - 1}\) 中方案
其实意会一下就是 \(2^{n - 1}\) 种方案
即一个连通块恰好有 \(2^{n - 1}\) 中方案 相当于 \(\frac {2^n}2\)
统计连通块个数 记为 \(cnt\) 意会一下答案就是 \(\frac {2^n}{2^{cnt}}\)

浙公网安备 33010602011771号