题目通道\]([序列 - 洛谷](https://www.luogu.com.cn/problem/P3863 "序列 - 洛谷")) ```cpp #include using namespace std; typedef long long ll; const int N=300010,B=333; int n,q,ans[N],L[N],R[N],id[N]; ll tag[N];//每个块的区间加懒标记 struct A{ int pos;//pos是原本的位置,存下才能判断它需不需要修改/查询(每个块内部会打乱顺序的) ll v;//V是值 bool operator<(const A &t){ if(v!=t.v) return v Do[N];//(序列维度)桶排序 inline void modify(int l,int x) { for(int i=L[id[l]];i<=R[id[l]];i++)//块内 if(a[i].pos>=l) //属于[l,q] a[i].v+=x; sort(a+L[id[l]],a+R[id[l]]+1);//注意这个序列是时间,所以排序是可以的 for(int i=id[l]+1;i<=(q-1)/B+1;i++) tag[i]+=x; } inline int query(int r,int x) { int ans=0; for(int i=L[id[r]];i<=R[id[r]];i++) if(a[i].pos<=r&&a[i].v+tag[id[r]]>=x) ans++; for(int i=1;i