A two-dimensional tree-like array naked question
1#include <cstdio>2#include <algorithm>3#include <cstring>4 5 using namespacestd;6 Const intMAXN =1024x768+Ten;7 intC[MAXN][MAXN];8 intN;9 Ten intLowbit (intx) One { A returnx& (-x); - } - the voidUpdateintXintYintd) - { - for(inti=x;i<=n;i+=lowbit (i)) - for(intj=y;j<=n;j+=Lowbit (j)) +C[I][J] + =D; - } + A intGetsum (intXinty) at { - intres =0; - for(intI=x;i>0; I-=lowbit (i)) - for(intJ=y;j>0; J-=Lowbit (j)) -Res + =C[i][j]; - returnRes; in } - to intQueryintLintRintUintd) + { - returnGetsum (R,u)-Getsum (r,d-1)-Getsum (l1, u) + getsum (L-1. Do1); the } * $ intMain ()Panax Notoginseng { - intop; the intx,y,l,r,u,d; + while(~SCANF ("%d",&op)) A { the if(OP = =0) + { -scanf"%d",&N); $Memset (c,0,sizeofc); $ } - Else if(OP = =1) - { thescanf"%d%d%d",&x,&y,&u); -Update (x+1, y+1, u);Wuyi } the Else if(OP = =2) - { Wuscanf"%d%d%d%d",&l,&d,&r,&u); -printf"%d\n", query (L +1, r+1. UI1, d+1)); About } $ Else if(OP = =3) - { - Break; - } A } +}
POJ 1195-mobile phones-Two-dimensional tree-like array