90 help!
查看原帖
90 help!
477118
Noby_Gld楼主2022/4/14 13:15

第五个点 WA 了,求改。

#include<bits/stdc++.h>
#define N 100010
#define int long long
using namespace std;
int n,m,q,ax[N],ay[N],tx[N],ty[N],x,y,z,w,v;
int lowbit(int x){return x&-x;}
void add(int x,int y){
	for(int i=x;i<=n;i+=lowbit(i)) tx[i]+=y;
}
void add2(int x,int y){
	for(int i=x;i<=n;i+=lowbit(i)) ty[i]+=y;
}
void jia(int x,int y){
	if(ax[x]) ax[x]=0,add(x,-1);
	else ax[x]=1,add(x,1);
	if(ay[y]) ay[y]=0,add2(y,-1);
	else ay[y]=1,add2(y,1);
}
int query(int x){
	int ans=0;
	for(int i=x;i;i-=lowbit(i)) ans+=tx[i];
	return ans;
}
int query2(int x){
	int ans=0;
	for(int i=x;i;i-=lowbit(i)) ans+=ty[i];
	return ans;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>q;
	while(q--){
		cin>>x>>y>>z;
		if(x==1) jia(y,z);
		else{
			cin>>w>>v;
			int xx=query(w)-query(y-1),yy=query2(v)-query2(z-1);
			cout<<xx*(v-z+1)+yy*(w-y+1)-xx*yy*2<<endl;
		}
	}
	return 0;
}
2022/4/14 13:15
加载中...