「HDU-6579」Operation
贪心+线性基,在LR区间内取任意个元素,求最大异或和
题意
给定一个长度为n的序列,有如下两种操作:
- 求L,R区间内任意个元素的最大异或和;
- 在序列末尾插入一个元素;
本题强制在线。
题解
考虑对每个点维护一个线性基,插入操作为继承上一个点的线性基并插入当前点的值。
维护每个基底组成的点g[i],考虑贪心,尽可能使组成线性基的点更靠近R。
对于某一位的点g[i],如果pos>g[i],则把pos与g[i]交换,使pos成为线性基的基底。
对于每个询问,查询第R个线性基所有pos大于L的基底能组成的最大值。
代码
1 |
|