BZOJ3732-[Wc2011] Xor
给定一个无向图,求节点1到结点N的XOR和最大路径,一条边可以重复经过多次。
解法
由于路径可以重复经过,对于图上的任意一个环,可以选择取或不取该环的值,而对于点1-n的路径异或和最大值,可以视为某一条1-n的路径,异或上若干个环的路径长度的最大值。
预处理求出图上所有环的异或和,并任取一条1-n的路径异或和,对这些值求线性基,即可求出最大值。
为什么1-n的路径可以任取:假设1-n有大于一条路径,其中另一条路径与所有环异或能取得更优解,那么此时可视为有一个经过1和n的环,故直接将该环与原所取路径异或即可取得最大值。
代码
1 |
|