Loading

P14994 异或最短路和

这也太变态了。

\(dis(i, j)\) 的刻画方式十分经典,使用线性基将 DFS 树上所有只包含一条非树边的简单环异或值加进去,那么 \(dis(i, j)\) 就是 \(i \to j\) 的任意一条路径的权值扔进线性基里求一个异或最小值,\(i \to j\) 可以用 DFS 树到根的异或表示出来,具体表示为 \(dep_i \oplus dep_j\)

那么设 \(F(dep_i \oplus dep_j)\) 表示扔进线性基里得到的最小值,有结论 \(F(dep_i \oplus dep_j) = F(dep_i) \oplus F (dep_j)\),可以拆位分讨贡献。

posted @ 2026-01-24 11:51  Alexande  阅读(2)  评论(0)    收藏  举报