10pts求调
查看原帖
10pts求调
1174563
hexiaoyan楼主2025/1/22 07:23
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,len;
bool a[100005];
int id[100005];
bool tag[100005];
void modify(int l,int r){
	if(id[l]==id[r]){
		for(int i=l;i<=r;i++){
			a[i]=!a[i];
		}
	}
	for(int i=l;id[i]==id[l];i++){
		a[i]=!a[i];
	}
	for(int i=r;id[i]==id[r];i--){
		a[i]=!a[i];
	}
	for(int i=id[l]+1;i<id[r];i++){
		tag[i]=!tag[i];
	}
}
signed main(){
	cin>>n>>m;
	len=sqrt(n);
	for(int i=1;i<=n;i++){
		id[i]=(i-1)/len+1;
	}
	for(int i=1;i<=m;i++){
		int op;
		cin>>op;
		if(op==1){
			int l,r;
			cin>>l>>r;
			modify(l,r);
		}else{
			int x;
			cin>>x;
			cout<<(a[x]+tag[id[x]])%2<<endl;
		}
	}
	return 0;
}
2025/1/22 07:23
加载中...