题目大意
给出一个长为 \(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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。