其他分享
首页 > 其他分享> > UOJ #91. 【集训队互测2015】最大异或和

UOJ #91. 【集训队互测2015】最大异或和

作者:互联网

题目大意

给出一个长为 \(n\) 的序列,要求实现三种操作,分别为区间异或上某数,区间覆盖为某数,和询问全局选出若干个数能获得的最大异或和。所有出现的数均不超过 $ 2^m $,询问数不超过 \(q\)。\(n,m,q\leq 2000\)。

分析题意

观察到询问操作所需的就是维护序列的线性基。注意到对于线性基中的两个数 \(x,y\),如果将 \(x\) 变为 \(x\oplus y\),则线性基所能构成的数的集合不变。于是考虑维护差分序列的线性基,修改操作变为修改线性基中的某个元素,和从线性基中删除差分序列的一个区间。删除操作可以暴力删除,因为插入线性基的数总个数是 \(O(n+q)\) 量级的。于是修改操作又转化为维护支持插入一个数和删除一个数的线性基。

标签:基中,删除,线性,91,异或,序列,2015,操作
来源: https://www.cnblogs.com/JCY-std/p/16285976.html