Description
Input
Output
Sample Input
Sample Output1
2HINT
Topic PortalIt's like the first time I did a tree-shaped array.Tree-like array of naked, or two-dimensional, a layer for the code is as follows:
#include <cmath>#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespacestd;inta[310][310][ the];intc[310][310];intn,m;intLowbit (intx) {returnx&-x;}voidChangeintXintYintCcintd) { for(inti=x;i<=n;i+=lowbit (i)) for(intj=y;j<=m;j+=Lowbit (j)) A[I][J][CC]+=D;}/*3 to 2 2 1 3*/intFindsum (intXintYintcc) { intsum=0; for(inti=x;i>=1; i-=lowbit (i)) for(intj=y;j>=1; j-=Lowbit (j)) Sum+=A[I][J][CC]; returnsum;}intMain () {scanf ("%d%d",&n,&m); for(intI=1; i<=n;i++) for(intj=1; j<=m;j++) {scanf ("%d",&C[i][j]); Change (i,j,c[i][j),1); } intQ; scanf ("%d",&p); while(q--) { intK,x,y,cc,tx,ty; scanf ("%d",&k); if(k==1) {scanf ("%d%d%d",&x,&y,&cc); Change (x,y,c[x][y),-1); C[x][y]=cc; Change (x,y,c[x][y),1); } Else{scanf ("%d%d%d%d%d",&x,&tx,&y,&ty,&cc); intans; Ans=findsum (TX,TY,CC) +findsum (X-1, Y1, CC); Ans=ans-(Findsum (x1, TY,CC) +findsum (tx,y-1, CC)); printf ("%d\n", ans); } } return 0;}
By_lmy
BZOJ1452: [Jsoi2009]count