c语言线段树的区间更新,pushdown函数,lazy标记不懂
1条回答 默认 最新
- tiany7 2019-10-17 07:57关注
就是,如果你每次更新到最底下,tree[root].L == tree[root].R的话,这样更新一片长度为N的区间的话,效率是nlongn的,这样还不如创数组一个一个更新。
但是你如果每次更新都在代表目标区间的范围,比如3-8,你找到3-8对应的节点,然后把这个节点更新了,之后打上inc(个人习惯叫lazy叫inc)
然后这个节点的意义是告诉之后查询也好更新也好,我在这个3-8更新了数据,但我没更新下去,你到时候如果要更新的话记得带上我这块。
然后就不用每次更新到树根了,所以时间复杂读差不多还是logN解决 无用评论 打赏 举报
悬赏问题
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误