POJ - 3764 The xor-longest Path(树上两点路径边权异或和,01字典树)

这是一篇关于解决POJ 3764问题的博客,题目要求在给定的一棵树上找到边权异或和最大的路径。通过分析异或的性质,可以任选一点作为根节点进行DFS,利用01字典树来存储每个节点到根节点的异或和,从而求解任意两点间的路径异或和。
摘要由CSDN通过智能技术生成

链接:POJ - 3764 The xor-longest Path

题意:

给出一棵 n ( 1 ≤ n ≤ 100000 ) n(1\le n\le100000) n(1n100000)个结点的树,每条边具有边权 w ( 0 ≤ w ≤ 2 31 ) w(0\le w\le 2^{31}) w(0w231),结点编号从 0 0 0 n − 1 n-1 n1。要求求出 异或和最大的路径(即路径上所有边权 w w w异或和最大),所有结点均可作为起点、终点。



分析:

图源自网络
由于异或的性质,其实只需要 任选一点作为根结点,如上图的 A A A,然后 DFS算得所有其他点到A点的异或和 s u m A − X sum_{A-X} sumAX 即可。

那么则有,任意两个点路径上的异或和 s u m X − Y = s u m A − X ⊕ s u m A − Y sum_{X-Y}=sum_{A-X}\oplus sum_{A-Y} sumXY=sumAXsumAY

因为异或时,相同部分的路径边权 w w w相同,异或得 0 0 0,不相同部分相互异或,最后与 0 0 0异或,不变。

例如 F F F J J J路径上的边权异或和 s u m F − J sum_{F-J} sumFJ<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值