[SPOJ]MAXOR
MAXOR
题解
分块板子
首先看到它的数据范围限制与询问,应该很容易联想到分块。
很显然,我们可以先处理出来每个整块到每个位置所形成的区间内的最大异或和,询问时只需要匹配以散块边界的异或和即可。
如何快速求出区间的异或和呢?很明显,差分即可。
所以我们求出区间内最大异或和即为我们将区间内的数全部作前缀和后,异或值最大的两个数的异或值。
而求最大异或值明显可以在字典树上匹配,我们只要顺次将区间内的数加入,并且在加入每个数之后都求一下该数对应的最大异或值即可。
我们记 p r e i , j , s u f i ,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】