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;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a1s4z5/article/details/49964477

POJ1195:Mobile phones(二维树状数组)

Description Suppose that the fourth generation mobile phone base stations in the Tampere area ope...
  • libin56842
  • libin56842
  • 2015-06-21 21:19:12
  • 2376

POJ 1195 Mobile phones

树状数组第一题,上来就是二维树状数组,这是逼着我用树状数组做啊,二维线段树不会写啊~~ 题目大意: 给定矩阵大小,可以更新矩阵中的某些数,要求输出某个范围内的所有数之和。 解题思...
  • lin375691011
  • lin375691011
  • 2014-03-14 19:46:55
  • 65044

Mobile phones(POJ_1195)

DescriptionSuppose that the fourth generation mobile phone base stations in the Tampere area operate...
  • highmath_Final
  • highmath_Final
  • 2016-04-29 11:17:11
  • 298

Mobile phones poj 1195

Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 18754   ...
  • qq_34952846
  • qq_34952846
  • 2016-12-12 20:02:21
  • 124

poj 1195 mobile phones

二维树状数组 sum(x,y)表示从0~x,0~y范围区间内的和包括0,0,x,y #include using namespace std; int c[1050][1050],size; int ...
  • deng_yu
  • deng_yu
  • 2011-08-04 19:30:03
  • 107

【POJ 1195】Mobile phones

Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17421   ...
  • Torrance_ZHANG
  • Torrance_ZHANG
  • 2016-03-11 22:49:30
  • 182

POJ 1195 Mobile phones

Mobile phones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 14329 Accepted: 6660 Desc...
  • u014688855
  • u014688855
  • 2014-07-16 09:20:52
  • 812

Poj 1195 Mobile phones

题目大意:给定一个n*n的矩阵,要求对这个矩阵做以下四种动态操作。 0 S 将S*S的矩阵元素的值都赋值为01 X Y A 将A添加到矩阵的(X,Y)上2 L B R T 查询矩阵中的元素值...
  • Detective_Xin
  • Detective_Xin
  • 2012-01-20 13:11:14
  • 253

poj 1195 Mobile phones

题目链接:点击打开链接 Description Suppose that the fourth generation mobile phone base stations in the T...
  • txgANG
  • txgANG
  • 2016-10-18 19:54:58
  • 190

POJ 1195 Mobile phones

POJ 1195 Mobile phones 题意: 一个二维数组,所有的数初始为0,会有两种操作:把某一个元素加上一个数(可负);查询某一块方形区域所有数的和。要求程序返回查询结果。 ...
  • LG_mind
  • LG_mind
  • 2012-11-04 16:43:24
  • 155
收藏助手
不良信息举报
您举报文章:poj 1195 Mobile phones
举报原因:
原因补充:

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