zoukankan      html  css  js  c++  java
  • [学习笔记]线段树分治

    线段树分治是一种离线分治算法,主要思想是建立以询问的时间为叶节点的线段树,考虑修改对询问的影响(修改会影响一段时间上的询问)

    用类似标记永久化的思想进行区间修改

    (即把原修改影响的区间([l,r])分成最多(log(r-l+1))段,将操作挂在对应的节点上,不上传也不用下传)

    最后(dfs)一遍,每进入一个节点就把节点上的操作(影响了全局)做了再往下递归,递归完成返回时将此节点的所有操作撤回(将全局改回原来的样子,类似回溯法)

    那么对于有询问的叶节点,这个时间点的操作已经做完了(也就是会对这个时间点做贡献的修改都做了),再询问并输出即可

    • 注意

      到叶节点并不能想当然地直接返回,因为叶节点上可能也挂有操作(我们需要撤回才行)

    据说这只是一种,还有的我也不会

    来两道例题

  • 相关阅读:
    keepass
    gpg
    Wireshark实践
    ssh
    namp
    第十二周
    第十一周
    第十周总结
    第九周学习总结
    编程语言
  • 原文地址:https://www.cnblogs.com/mzg1805/p/11580940.html
Copyright © 2011-2022 走看看