• BZOJ1452_Count_KEY


    题目传送门

    二维树状数组,对于每个颜色开一个树状数组,用容斥求解。

    code:

    #include <cstdio>
    using namespace std;
    
    int read()
    {
        char c;while(c=getchar(),c<'0'||c>'9');
        int x=c-'0';while(c=getchar(),c>='0'&&c<='9')x=x*10+c-'0';
        return x; 
    }
    
    int N,M,tr[101][301][301],a[301][301];
    
    void add(int x,int y,int c,int p)
    {
        for(int i=x;i<=N;i+=i&-i)
            for(int j=y;j<=M;j+=j&-j)
                tr[c][i][j]+=p;
        return ;
    }
    
    int get(int x,int y,int c)
    {
        int ans=0;
            for(int i=x;i;i-=i&-i)
                for(int j=y;j;j-=j&-j)
                    ans+=tr[c][i][j];
        return ans;
    }
    
    int main()
    {
        N=read(),M=read();
            for(int i=1;i<=N;i++)
                for(int j=1;j<=M;j++)
                    add(i,j,a[i][j]=read(),1);
        int Q=read();
            while(Q--){
                int o=read();
                if(o==1){
                    int x=read(),y=read(),c=read();
                    add(x,y,a[x][y],-1);
                    add(x,y,a[x][y]=c,1);
                }
                else{
                    int x=read(),fx=read(),y=read(),fy=read(),c=read();
                    printf("%d
    ",get(fx,fy,c)-get(x-1,fy,c)-get(fx,y-1,c)+get(x-1,y-1,c));
                }
            }
    }
  • 相关阅读:
    harbor docker
    dns服务器
    k8s
    frps
    svn 搭建
    phpstrom 破解 转载https://www.jianshu.com/p/e71361b3bfee
    公开课
    k8s
    rsync各种备份
    定时任务
  • 原文地址:https://www.cnblogs.com/Cptraser/p/8510965.html
Copyright © 2020-2023  润新知