[YZOJ]P1232-异或游戏

来源:互联网 发布:瑞典难民知乎 编辑:程序博客网 时间:2024/06/10 20:08

题型特征
维护区间信息,需要对每个左端点重新构造情况,不可通过前缀和差分。

一般方法
对左端点排序,处理每一个含有这个左端点的区间询问,并移动左端点。保证了左端点最多经历len 次修改。

题意描述
T组询问,每组询问要求区间[L,R] 中出现次数为偶数的数的异或和。
T=2×105,n=5×105

正解
Ans=i[L,R],a[i]ai
=i[L,R]aii[L,R],j[L,i),a[i]a[j]ai

前缀和处理前面一部分,现在看后面一部分。

对以左端点为第一关键字,右端点为第二关键字从大到小排序。
对于一个确定的左端点,假设将其之后的序列构造为:对于的任何一个数k,将其之后的序列中的k改为0。则第二部分就可以通过维护区间和求出。

考虑左移左端点的修改。在区间[L2,L1)中,若一个数已经出现,则将之前的数改为0,加入当前的数。

操作包括单点修改,区间查询,用线段树实现。

原创粉丝点击