社区讨论
线段树合并求 hack
学术版参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @miiuejef
- 此快照首次捕获于
- 2025/11/28 20:32 3 个月前
- 此快照最后确认于
- 2025/11/29 17:25 3 个月前
假设现在有 棵线段树,每个线段树上只有一个区间修改,并且需要下放标记。然后要把它们合并成一棵线段树。(需要维护的操作有区间加,区间chkmin,需要维护的信息是区间min,合并两个线段树形如对位相加。)
这个东西的朴素做法就是
PushDown 时新建节点,但这显然能被卡成 (假设线段树维护的下标也是 )。例如,当我们合并两个只有根节点有标记的线段树时,它们都会被扩展成全树。于是我胡了一种神秘做法:假设现在合并 ,并且 没有儿子,那么 的值全部相同,想要把它对位相加就不需要再下放标记/递归了。于是可以直接合并。
写的时候想了一下,感觉是 的。(因为往新节点的递归次数是 的。)但今天突然又感觉不太对。求 hack。
回复
共 5 条回复,欢迎继续交流。
正在加载回复...