官方是双log的
子树内前驱可以离线
所有点最初权值为0 编号从小到大枚举 将其权值变为编号
枚举i之前先把子树i内权值最值求出来
然后变成单点修改 子树最大值问题 搞到dfs序上线段树即可
后继也类似
然后询问满足这个的点个数时候 L < ql <= x <= qr < R
因为保证L < x < R
可以转化成L < ql,qr < R的点个数
减去x < ql,qr < R的点个数 再减去x > qr, L<ql的个数
每种都可以转化成二维数点
扫描二维码,关注牛客
下载牛客APP,随时随地刷题
全部评论
(1) 回帖