ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[luogu]P6225 [eJOI2019]异或橙子 树状数组

2022-03-02 13:01:35  阅读:231  来源: 互联网

标签:eJOI2019 P6225 int luogu t2 t1 add modify query


前言

因为过样例但是暴0的屑
传送门 :

思路

观察题目所给的 2 − 4 2-4 2−4,不难发现利用 a   x o r   a = 0 a\ xor\ a=0 a xor a=0,最后只剩下了 a 2 a 4 a_2 a_4 a2​a4​

因此再手推几组样例会发现

只有当奇偶性相同的时候才有答案,而答案就是 l , l + 2 , . . . r l,l+2,...r l,l+2,...r

但是这里需要注意修改操作

对于异或树状数组的修改 ,我们仍然可以使用上面那个性质,

这样子我们再 m o d i f y modify modify的时候,需要 m o d i f y ( a [ x ]   x o r   y ) modify(a[x]\ xor\ y) modify(a[x] xor y)

最后输出异或即可
d e b u g debug debug好痛苦啊QAQ

Mycode

const int N  = 2e5+10;
int t1[N],t2[N],a[N];
int n,m;

int lowbit(int x){
	return x & (-x);
}

void add(int *C,int x,int k){
	for(int i = x;i <=  n ; i += lowbit(i))
	C[i]^=k;
}

int query(int *C,int x){
	int sum =  0;

	for(int i = x; i ; i-=lowbit(i))
	sum^=C[i];

	return sum;
}
void solve()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];

		if(i&1)
		add(t1,i,a[i]);
		else
		add(t2,i,a[i]);

	}
	for(int i=1;i<=m;i++){
		int op,x,y;
		cin>>op>>x>>y;
		if(op == 1){
			if(x%2 !=0)
			{
				add(t1,x,a[x]^y);
				a[x] = y;
				}
			else{
				add(t2,x,a[x]^y);
				a[x] = y;
			}
		}else{
			if(((x&1)^(y&1)))
			cout<<0<<endl;
			else
			{
				if(x%2 !=0 ){
                    int l = query(t1,y);
                    int r = query(t1,x-1);
                    int ans = l^r;
					cout<<ans<<endl;
				}else{
				    int l = query(t2,y);
                    int r = query(t2,x-1);
                    int ans = l^r;
					cout<<ans<<endl;
				}
			}
		}
	}

}

标签:eJOI2019,P6225,int,luogu,t2,t1,add,modify,query
来源: https://blog.csdn.net/qq_34364611/article/details/123227424

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

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有