• 数据结构:二维树状数组模板


    点击查看折叠代码块
    /*
    二维树状数组+差分容斥 
    */
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int maxn=1e3+10;
    int c[maxn][maxn];//二维树状数组 
    int T,n,m;
    int lowbit(int x){
    	return x&-x;
    }
    
    void update(int x,int y,int v){
    	while(x<=n){
    		int yy=y;
    		while(yy<=n){
    			c[x][yy]+=v;
    			yy+=lowbit(yy);
    		}
    		x+=lowbit(x);
    	}
    }
    
    int query(int x,int y){
    	int ans=0;
    	while(x){
    		int yy=y;
    		while(yy){
    			ans+=c[x][yy];
    			yy-=lowbit(yy);
    		}
    		x-=lowbit(x);
    	}
    	return ans;
    }
    
    int main(){
    	scanf("%d",&T);
    	while(T--){
    		memset(c,0,sizeof(c));
    		scanf("%d%d",&n,&m);
    		char s[2];
    		for (int i=1;i<=m;i++){
    			scanf("%s",s);
    			if(s[0]=='C'){
    				int r1,c1,r2,c2;
    				scanf("%d%d%d%d",&r1,&c1,&r2,&c2);
    				update(r1,c1,1);
    				update(r1,c2+1,-1);
    				update(r2+1,c1,-1);
    				update(r2+1,c2+1,1);
    			}
    			else{
    				int x,y;
    				scanf("%d%d",&x,&y);
    				int ans=query(x,y)%2;
    				printf("%d
    ",ans);
    			}
    		}
    		printf("
    ");
    	}	
    	return 0;
    }
    
    
    你将不再是道具,而是成为人如其名的人
  • 相关阅读:
    练习1-6
    c语言while(1)和while(0)
    练习1-3
    每天总结模电--(三)
    每天总结模电——贴片电阻,电容的命名规则(二)
    服务器应用的通用功能
    UML
    算法合集
    python笔记
    笔面试(2019秋招阶段)
  • 原文地址:https://www.cnblogs.com/wsl-lld/p/13393518.html
Copyright © 2020-2023  润新知