#10051. 「一本通 2.3 例 3」Nikitosh 和异或(trie树-异或和问题)

该博客探讨了如何解决寻找数组中两个不相交区间的异或和最大值的问题。通过利用异或的性质,使用trie树分别从左到右和从右到左维护最大异或和,最终得到整体的最大值。
摘要由CSDN通过智能技术生成

题目链接:#10051. 「一本通 2.3 例 3」Nikitosh 和异或

题目描述:

给定一个含 N (N<=4e5) 个元素的数组 A (A[i]<=1e9),下标从 1 开始。请找出下面式子的最大值:

(A[l_1]\oplus A[l_1+1]\oplus......\oplus A[r_1]) + (A[l_2]\oplus A[l_2+1]\oplus ......\oplus A[r_2])

其中1\leqslant l_1\leqslant r1<l 2\leqslant r2\leqslant N, x\oplus y 表示x和y的按位异或。

也就是说选出两个不相交的区间 [l_1,r_1] \& [l_2,r_2] 使得这两段区间的【或和】相加最大

输出这个最大值。

题目分析:

先考虑一个较简单的问题,在一个序列中求某个区间的【异或和】最大值

可以发现异或具有以

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值