【第22期】观点:IT 行业加班,到底有没有价值?

poj 1195 Mobile phones

原创 2015年11月21日 14:48:23
一个简单的二维树状数组水题(真的好裸


命令1 x y v,就是对x,y这个点加上一个v
命令2 x1 y1 x2 y1就是询问这个区间内的所有点的权值和,这个可以简单容斥一下,就是query(x2,y2)-query(x1-1,y2)-query(x2,y1-1)+query(x1-1,y1-1),也很简单
那么就这样


代码(


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

const int maxn = 1123;

int sum[maxn][maxn];

inline int lowbit(int x){
    return x&(-x);
}

void add(int x,int y,int v,int n){
    for(int i=x;i<=n;i+=lowbit(i))
        for(int j=y;j<=n;j+=lowbit(j))
            sum[i][j]+=v;
}

int query(int x,int y){
    int ret = 0;
    for(int i=x;i>0;i-=lowbit(i))
        for(int j=y;j>0;j-=lowbit(j))
            ret+=sum[i][j];
    return ret;
}

int main(){
    int ord,n;
    while(~scanf("%d %d",&ord,&n)){
        memset(sum,0,sizeof(sum));
        int x1,x2,y1,y2;
        int val;
        scanf("%d",&ord);
        while(ord!=3){
            if(ord==1){
                scanf("%d %d %d",&x1,&y1,&val);
                x1++,y1++;
                add(x1,y1,val,n);
            }
            else{
                scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
                x1++,x2++,y1++,y2++;
                val = query(x2,y2)-query(x1-1,y2)-query(x2,y1-1)+query(x1-1,y1-1);
                printf("%d\n",val);
            }
            scanf("%d",&ord);
        }
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

poj 1195 Mobile phones

Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 18729   Accepted: 8...

POJ 1195 Mobile phones 二维树状数组

二维树状数组是为了矩阵的某个区域快速求和,其原理是一样的,可以对每一维都是用树状数组的原理求和,就相当于把二维数组当做一个一维数组,每个元素又都是一维数组,比如,里面的那个循环是把行的和求出来,外面的循环则是把这些和的和求出来,从而能求解矩阵某个区域的和。 这道题需要注意的就是下标是从0开始的。 ...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

二维树状数组模板题 poj 1195 Mobile phones

给定一个矩阵和三种操作 1 a b x表示把[a,b]值加上x,2 L B R T表示L <= x <= R , B <= y <= T 求这个小矩形的面积 3表示输入结束

poj 1195 Mobile phones(二维的树状数组)得好好看。。。

1、http://poj.org/problem?id=1195 2、题目大意 给定4种操作,分别是 操作0的意思是创建一个S*S的空矩阵 操作1的意思是将矩阵中的(X,Y)位值的数字加上...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)