zoukankan      html  css  js  c++  java
  • bzoj1452

    题解:

    二位树状数组

    然后我开了300*300*300就T了

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=305;
    int n,m,opt,z,a[N][N],dx,dy,x,y,f[N][N][105],q;
    int find(int x,int y,int z)
    {
        int ans=0;
        for (;x;x-=x&-x)
         for (int i=y;i;i-=i&-i)
          ans+=f[x][i][z];
        return ans;  
    }
    void insert(int x,int y,int z,int s)
    {
        for (;x<=n;x+=x&-x)
         for (int i=y;i<=m;i+=i&-i)
          f[x][i][z]+=s;
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for (int i=1;i<=n;i++)
         for (int j=1;j<=m;j++)
          scanf("%d",&a[i][j]),insert(i,j,a[i][j],1);
        scanf("%d",&q);
        while (q--)
         {
             scanf("%d",&opt);
             if (opt==1)
              {
                  scanf("%d%d%d",&x,&y,&z);
                  insert(x,y,a[x][y],-1);
                  a[x][y]=z;
                  insert(x,y,z,1);
              }
             if (opt==2)
             {
                 scanf("%d%d%d%d%d",&x,&dx,&y,&dy,&z);
                 printf("%d
    ",find(dx,dy,z)-find(dx,y-1,z)-find(x-1,dy,z)+find(x-1,y-1,z));
             } 
         }  
    }
  • 相关阅读:
    PHP数组处理总结
    设计模式之-工厂模式理解
    我的世界观
    编程入门
    2019 新的一年
    placeholder 不支持ie8
    2018年8月20日
    HttpClientUtil
    通用mapper
    small_demo
  • 原文地址:https://www.cnblogs.com/xuanyiming/p/8823288.html
Copyright © 2011-2022 走看看