"Link" I am the link, point me:)
Test instructions
Enter the test instructions here
Exercises
Maintains 100 two-dimensional tree-like arrays.
Two-dimensional interval summation.
Code
#include <bits/stdc++.h>#define LL Long Long#define REP1 (I,A,B) for (int i = a;i <= b;i++)#define REP2 (I,A,B) for (int i = a;i >= b;i--)#define ALL (x) X.begin (), X.end ()#define PB Push_back#define Lson l,mid,rt<<1#define Rson mid+1,r,rt<<1|1using namespaceStdConst DoublePI = ACOs (-1);Const intdx[4] = {0,0,1,-1};Const intdy[4] = {1,-1,0,0};Const intC = -;Const intN = -;intN,m,a[c+10][n+10][n+10],q,b[n+10][n+10];intLowbit (intx) {returnx& (-X);}void_UPD (intNumintXintYintDelta) { while(x<=n) {inttemp = y; while(temp<=m) {A[num][x][temp]+=delta; Temp+=lowbit (temp); } x+=lowbit (x); }}int_sum (intNumintXintY) {inttemp =0; while(x>0){intTempy = y; while(tempy>0) {Temp+=a[num][x][tempy]; Tempy-=lowbit (Tempy); } x-=lowbit (x); }returntemp;}intMain () {#ifdef Local_defineFreopen ("Rush_in.txt","R", stdin);#endifscanf"%d%d", &n,&m); REP1 (I,1, N) rep1 (J,1, m) {scanf ("%d", &b[i][j]); _UPD (B[i][j],i,j,1); } scanf ("%d", &q); while(q--) {intOpe scanf"%d", &ope);if(ope==1){intX,y,c; scanf"%d%d%d", &x,&y,&c); _UPD (B[x][y],x,y,-1); _UPD (C,x,y,1); B[x][y] = c; }Else{intX1,y1,x2,y2,c; scanf"%d%d%d%d%d", &x1,&x2,&y1,&y2,&c); printf"%d\n", _sum (c,x2,y2)-_sum (c,x2,y1-1)-_sum (c,x1-1, y2) +_sum (c,x1-1, y1-1)); } }return 0;}
"Bzoj 1452" [Jsoi2009]count