Preface
本文采用的线段树模板是 AtCoder 的线段树模板,可以在 AtCoder Library 处下载并使用。这里简单提一下相关的 API,AtCoder 的线段树是通过 push tag 的方式实现的。
AtCoder 区间修改线段树 lazy_segtree<>
API
-
模板参数填什么
模板参数 含义 S
线段树节点维护的信息 F
线段树节点上的懒标记 S op(S left, S right)
子节点节点合并到父节点,即 pull_up()
的过程S e()
线段树节点初始化 S mapping(F, S)
把父节点上的懒标记下放到子节点上,即 push_down()
F compose(F new, F old)
新的懒标记和旧的懒标记结合。
注意这个参数顺序非常重要!!!先新标记,再旧标记!!F id()
标记的初始化