zoukankan      html  css  js  c++  java
  • 51nod1210

    题解:

    二维树状数组,再矩阵推一下

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N=210;
    int n,m,q;
    LL T[4][N][N];
    int TN,TM;
    void add(LL (*T)[N],int x,int y,LL v) 
    {
        if (!x||!y)return;
        for (int i=x;i<=TN;i+=i&-i)
         for (int j=y;j<=TM;j+=j&-j)T[i][j]+=v;
    }
    LL sum(LL (*T)[N],int x,int y) 
    {
        if (!x||!y)return 0LL;
        LL v=0;
        for (int i=x;i;i-=i&-i)
         for (int j=y;j;j-=j&-j)v+=T[i][j];
        return v;
    }
    void add(int x,int y,LL v) 
    {
        add(T[0],x,y,v);
        add(T[1],x,y,v*(-x));
        add(T[2],x,y,v*(-y));
        add(T[3],x,y,v*(-x)*(-y));
    }
    LL sum(int x, int y) 
    {
        return (x+1)*(y+1)*sum(T[0],x,y)+(y+1)*sum(T[1],x,y
        )+(x+1)*sum(T[2],x,y)+sum(T[3],x,y);
    }
    void add(int x1,int y1,int x2,int y2,LL v)
    {
        add(x1,y1,v);
        add(x2+1,y1,-v); 
        add(x1,y2+1,-v); 
        add(x2+1,y2+1,v);
    }
    LL sum(int x1, int y1, int x2, int y2) 
    {
        return sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1);
    }
    int main() 
    {
        scanf("%d%d%d",&n,&m,&q);
        TN=n;TM=m;
        for (int i=1;i<=m;i++)
         for (int j=1;j<=n;j++) 
          {
            int x;
            scanf("%d",&x);
            add(j,i,j,i,x);
          }
        for (int i=0;i<q;i++) 
         {
            int x1,y1,x2,y2,z,a;
            scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&z,&a);
            LL s = sum(x1, y1, x2, y2);
            if (s<(LL)z*(x2-x1+1)*(y2-y1+1))add(x1,y1,x2,y2,a);
         }
        for (int i=1;i<=m;i++)
         for (int j=1;j<=n;j++)
          printf("%lld%c",sum(j,i,j,i),j==n?'
    ':' ');    
    }
  • 相关阅读:
    jquery queryBuilder过滤插件的使用
    前端跨域问题
    [BZOJ 3326] 数数
    [BZOJ 2427] 软件安装
    [BZOJ 3675] 序列分割
    [Atcoder Grand Contest 004] Tutorial
    [P2831] 愤怒的小鸟
    [Atcoder Regular Contest 065] Tutorial
    [P3806] Divide and Conquer on Tree
    [POJ 1741] Tree
  • 原文地址:https://www.cnblogs.com/xuanyiming/p/7612550.html
Copyright © 2011-2022 走看看