ABC 451 G
G - Minimum XOR Walk
首先需要一个关键结论:在无向连通图中,从 \(u\) 到 \(v\) 的任意可达路径的最小异或和,等于从 \(u\) 到 \(v\) 的任意一条简单路径的异或和 \(s\) 关于该图中所有环的异或和构成的线性基的最优解。(最大异或和同理)
具体证明见 线性基
通过处理图中所有环(将它们的异或和均插入到线性基中),并钦定图中的某一棵生成树(任意点对之间的简单路径在该生成树上),我们可以得到任意一条路径 \((u, v)\) 的答案,但暴力统计每一条路径的复杂度是 \(O(n^{2})\) 的,需要考虑优化。
结论:线性基存在线性映射性质。设初始值为 \(x\),\(x\) 关于线性基求最小异或和的最优解为 \(f(x)\),则:
\[f(x \oplus y) = f(x) \oplus f(y)
\]
设在钦定的生成树中,从根节点到 \(u\) 的路径异或和为 \(a_{u}\),则路径 \((u, v)\) 的答案为 \(f(a_{u} \oplus a_{v})\)。
我们需要统计:
\[\sum_{1\le u < v \le n} [f(a_{u} \oplus a_{v}) \le k]
\]
经过上式转化:
\[\sum_{1\le u < v \le n} [f(a_{u}) \oplus f(a_{v}) \le k]
\]
于是,通过 \(O(n\log A)\) 预处理出序列 \(b_{i} = f(a_{i})\),\(i \in [1, n]\), 问题就变成了:给定一个长度为 \(n\) 的序列与定值 \(k\),统计满足 \(b_{i} \oplus b_{j} \le k\),\(1 \le i < j \le n\) 的 \((i, j)\) 数量。显然可以用 01Trie 解决。


浙公网安备 33010602011771号