poj1195 Mobile phones 二維樹狀數組

來源:互聯網
上載者:User

   做得有點苦逼,各種錯誤,但最後還是被我發現了

#include <iostream>#include<cstdio>#include<cstring>using namespace std;int c[1025][1025],n;inline int lowbit(int k){    return k&(-k);}void insert(int x,int y,int d){    for(int i=x;i<=n;i+=lowbit(i))        for(int j=y;j<=n;j+=lowbit(j))            c[i][j]+=d;}int getsum(int x,int y){    int t=0;    for(int i=x;i>0;i-=lowbit(i))        for(int j=y;j>0;j-=lowbit(j))            t+=c[i][j];    return t;}int main(){    int x1,y1,x2,y2,d,x;    while(~scanf("%d",&x))    {        if(x==3)            break;        if(x==0)        {            scanf("%d",&n);            //memset(c,0,sizeof(int)*(n+1)*(n+1));對於二維數組不能這樣初始化            for(int i=0;i<=n;i++)                for(int j=0;j<=n;j++)                    c[i][j]=0;        }        else if(x==1)        {            scanf("%d%d%d",&x1,&y1,&d);            x1++;y1++;            insert(x1,y1,d);        }        else        {            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);            x1++;y1++;x2++;y2++;            int sum=getsum(x2,y2)-getsum(x1-1,y2)-getsum(x2,y1-1)+getsum(x1-1,y1-1);            printf("%d\n",sum);        }    }    return 0;}/*0 41 1 2 32 0 0 2 21 1 1 21 1 2 -12 1 1 2 33*/

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.