主要是留个板子免得以后慢慢推。
模板:
//需要满足(1<<_log)>=n,且N>(1<<_log) //多测时注意赋初值 const int N=200005; int t[N],_log; inline int lowbit(int x) { return x&(-x); } inline void add(int k,int x) { for(int i=k;i<N;i+=lowbit(i)) t[i]+=x; } inline int query(int k) { int ans=0; for(int i=k;i;i-=lowbit(i)) ans+=t[i]; return ans; } inline int kth(int k) { int pos=1<<_log; for(int i=_log-1;i>=0;i--) if(t[pos-(1<<i)]>=k) pos-=(1<<i); else k-=t[pos-(1<<i)]; return pos; }