王强怎么这么强啊
王强太强了 二维树状数组#include#include #include #include using namespace std;int bit[2000][2000], n;int lowbit(int x){ return x&-x;}void add(int x, int y, int num){ for(int i = x; i <= n; i += lowbit(i)) for(int j = y; j <= n; j += lowbit(j)) bit[i][j] += num;}int sum(int x, int y){ int res = 0; for(int i = x; i > 0; i -= lowbit(i)) for(int j = y; j > 0; j -= lowbit(j)) res += bit[i][j]; return res;}int query(int a,int b,int c,int d){ return sum(c,d)-sum(a-1,d)-sum(c,b-1)+sum(a-1,b-1);}int main(){ scanf("%d",&n); int a,b,c,d,t; for(int i=1;;i++) { scanf("%d",&t); if(t==1) { scanf("%d%d%d",&a,&b,&c); add(a+1,b+1,c); } if(t==2) { scanf("%d%d%d%d",&a,&b,&c,&d); printf("%d\n",query(a+1,b+1,c+1,d+1)); } if(t==3) return 0; }}