[BZOJ4552]排序
考虑最后的$x$
我们只关系一个数大于等于$x$或小于$x$
对于$[l,r]$的区间操作,相当于把$0$都放在前面,把$1$都放在后面。
即支持区间修改,查询区间和。
可以用线段树实现
$pushdown$
void pd(int o,int l,int r){ if(l==r)return; if(lz[o]!=-1){ int m=(r+l)/2; lz[o*2]=lz[o*2+1]=lz[o]; sum[o*2]=(m-l+1)*lz[o];sum[o*2+1]=lz[o]*(r-m); lz[o]=-1; } }
戒骄戒躁