首页 > 其他 > 详细

POJ_1195 Mobile phones 【二维树状数组】

时间:2014-06-24 21:15:35      阅读:348      评论:0      收藏:0      [点我收藏+]

题目链接:http://poj.org/problem?id=1195

纯纯的二维树状数组,不解释,只需要注意一点,由于题目中的数组从0开始计算,所以维护的时候需要加1。因为树状数组的下标是不能为1的

代码:

#include <iostream>
#include <cstdio>
#define N 1030
using namespace std;
int c[N][N];
int cas,n,x,y,a,l,b,r,t;
int Lowbit(int x)
{
    return x & (-x);
}
void Updata(int x,int y,int a)
{
    int i,k;
    for(i=x; i<=n; i+=Lowbit(i))
        for(k=y; k<=n; k+=Lowbit(k))
           c[i][k]+=a;
}
int Getsum(int x,int y)
{
    int i,k,sum = 0;
    for(i=x; i>0; i-=Lowbit(i))
        for(k=y; k>0; k-=Lowbit(k))
            sum += c[i][k];
    return sum;
}
int main()
{
    scanf("%d%d",&cas,&n);
    while(~scanf("%d",&cas))
    {
        if(cas==1)
        {
            scanf("%d%d%d",&x,&y,&a);
            Updata(x+1,y+1,a);
        }
        if(cas==2)
        {
            scanf("%d%d%d%d",&l,&b,&r,&t);
            int a=Getsum(r+1,t+1)-Getsum(l,t+1)-Getsum(r+1,b)+Getsum(l,b);
            printf("%d\n",a);
        }
        if(cas==3)
            return 0;
    }
    return 0;
}

POJ_1195 Mobile phones 【二维树状数组】,布布扣,bubuko.com

POJ_1195 Mobile phones 【二维树状数组】

原文:http://blog.csdn.net/u013912596/article/details/33802561

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!