题目链接
题意
有n个数,每次要么询问区间的最大异或和,要么在最后加一个数。
思路
首先很容易想到这个问题要维护区间线性基,每次询问得到区间线性基后从高位到低位贪心的选。
似乎是一道线段树维护线性基的裸题,但是分析一下复杂度,线段树本身一个log,线性基一个log,似乎不是很容易卡过去。
复杂度类似的用平衡树维护线性基也是如此。
这里引出一种算法,贪心地维护序列的前缀线性基。
可持久化线性基
我们称它为可持久化线性基。
每个位置维护它的前缀线性基,然后用心最后一个位置贪心更新,每个基底一定是越靠后越好。
Code
1 |
|