int bit[maxn],n; void init() { n = maxn; memset(bit,0,sizeof(bit)); } int sum(int i) { int s = 0; while(i>0) { s += bit[i]; i -= i&-i; } return s; } void add(int i,int x) { while(i <= n) { bit[i] += x; i += i&-i; } }
int d[1000006][25]; int mn[1000006]; void rmq_init() { for(int i=1;i<=n;i++) d[i][0]=a[i]; for(int j=1;(1<<j)<=n;j++) for(int i=1;i+(1<<j)-1<=n;i++) d[i][j]=min(d[i][j-1],d[i+(1<<(j-1))][j-1]); for(int len=1;len<=n;++len){ int k=0; while((1<<(k+1))<=len) k++; mn[len]=k; } } int rmq(int L,int R) { int k=mn[R-L+1]; return min(d[L][k],d[R-(1<<k)+1][k]); }
const int maxn = 504; int d[maxn][maxn]; int n; void init() { n = maxn; memset(d,0,sizeof(d)); } void update(int x,const int&y,const int&V) { for(;x<=n;x+=(x&(-x))) for(int j = y;j <= n;j += (j&(-j))) d[x][j]+=V; } int getsum(int x,const int &y) { int res = 0; for(;x;x -= x&(-x)) for(int j = y;j;j-=j&(-j)) res += d[x][j]; return res; }
const int maxn = 1 << 18; int n, dat[2*maxn]; void init() { n = (1 << 18)-2; memset(dat,0,sizeof(dat)); } //更新第k(0-index)个值为a void update(int k,int a) { k += n+1; dat[k] = a; while(k>0) { k = (k-1)/2; dat[k] = dat[k*2+1]+dat[k*2+2]; } } //求[a,b)val //query(a,b,0,0,n) int query(int a,int b,int k,int l,int r) { //不相交 if(r<a || b<l) return 0; if(a<=l && r<=b) {return dat[k];} else { int vl = query(a,b,k*2+1,l,(l+r)/2); int vr = query(a,b,k*2+2,(l+r)/2+1,r); return vl+vr; } return -1;//error }
int data[maxn<<2],datb[maxn<<2]; int n; void init() { n = maxn; memset(data,0,sizeof(data)); memset(datb,0,sizeof(datb)); } //对[a,b)加x //add(a,b,x,0,0,n) void add(int a,int b,int x,int k,int l,int r) { if(a<=l && r<=b) { data[k] += x; } else if(l < b && a < r) { datb[k] += (min(b,r) - max(a,l)) * x; add(a,b,x,k*2+1,l,(l+r)/2); add(a,b,x,k*2+2,(l+r)/2,r); } } //sum(a,b,0,0,n) int sum(int a,int b,int k,int l,int r) { if(b<=l || r<=a) { return 0; } else if(a <= l && r <= b) { return data[k] * (r-l)+datb[k]; } else { int res = (min(b,r) - max(a,l)) * data[k]; res += sum(a,b,k*2+1,l,(l+r)/2); res += sum(a,b,k*2+2,(l+r)/2,r); return res; } }
ST表的板子是抄的:https://www.cnblogs.com/autsky-jadek/p/7327416.html