POJ题面:The xor-longest Path
题目大意:
给定一个具有边权的树。
树中一条路径 p p p 的异或长度被定义为该路径上所有边的权值的异或和: x o r l e n g t h ( p ) = ⊕ e ∈ p w ( e ) _{xor}length(p)=\oplus_{e\in p}w(e) xorlength(p)=⊕e∈pw(e)
其中, ⊕ \oplus ⊕ 表示异或运算。
给定上述具有 n n n 个节点的树,求一条异或长度最大的路径。(也就是求所有路径中最大的异或长度)
思路:
每条边都有相应的权值,我们可以拿一个数组 d i s dis dis 来存根节点到每个非根节点 i i i 的异或长度,于是第 i i i 个节点对应的到根节点的异或长度为 d i s [ i ] dis[i]