【做题记录】P4551 最长异或路径
-
最长异或路径
- 算法:
题目:
给你一棵带边权的树,求 使得 到 的路径上的边权异或和最大,输出这个最大值。
点数不超过 ,边权在 内。
题解:
设 为 到 的路径上的边权异或和的值。
那么对于求出每一组 求出 效率低下。
考虑对于树的一个指定根 ,可以通过 来得到 。
具体地说,就是考虑 ,由于 以上至根的部分重复,所以重复部分异或值为 ,那么此式子成立。
所以对于一点 ,考虑算出所以的 。
但是这样复杂度仍为 。瓶颈在于每次都要计算 。
所以考虑将 插入一棵 trie 中,所以就可以更快地求出 。
考虑用一个贪心:对于每个数转为其二进制数,从高位比较,进行异或,若异或值大显然值也大,所以顺此路线往下走。
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15778170.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步