题解:P14009 数字游戏
Rainbow_qwq · · 题解
本题可以做到
首先做
交换扫描的维度,扫描序列维,用线段树维护值域维。
于是我们要干的事情是:
可以在线段树上并行所有修改操作,写出如下代码:
void update(int p,int l,int r,int x){
if(x/l==x/r){
pushtag(p,x/l);
return;
}
int mid=l+r>>1;
pushdown(p);
update(p<<1,l,mid,x);
update(p<<1|1,mid+1,r,x);
pushup(p);
}
我们可以证明上面代码的复杂度是
对于线段树上的节点
对线段树的每层数这样的节点数,在有
总个数为