void Add(int x,int y,int c) { for (int i=x;i<=n;i+=LOWBIT(i)) { for (int j=y;j<=n;j+=LOWBIT(j)) { d[i][j]+=c; } } }
int sum(int x,int y) { int ret=0; for (int i=x;i>0;i-=LOWBIT(i)) { for (int j=y;j>0;j-=LOWBIT(j)) { ret+=d[i][j]; } } return ret; }
void update(int x, int delta) { while(x < 100001) { tr[x] += delta; x += LOWBIT(x); } }
int sum(int x) { int sum = 0; while(x){ sum += tr[x]; x -= LOWBIT(x); } return sum; }
//插入单个元素 void bit_update(int *a, int p, int d) { for ( ; p && p < MAXN ; p += LOWBIT(p)) a[p] += d; }
//查询单个元素值 int bit_query2(int *a, int p) { int s = 0; for ( ; p && p < MAXN ; p += LOWBIT(p)) s += a[p]; return s; }
//插入区间 void bit_update2(int *a, int p, int d) { for ( ; p ; p -= LOWBIT(p)) a[p] += d; }
//查询区间 int bit_query(int *a, int p) { int s = 0; for ( ; p ; p -= LOWBIT(p)) s += a[p]; return s; }