Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LazySegmentTree ¶
type LazySegmentTree struct {
// contains filtered or unexported fields
}
LazySegmentTree 动态开点线段树·其二·延迟标记(区间修改 + 区间覆盖) 同时支持区间修改和区间覆盖的,会比只支持一种的繁琐一些。
func NewLazySegmentTree ¶
func NewLazySegmentTree(left, right int, merge func(lo, ro int) int) *LazySegmentTree
NewLazySegmentTree 初始化线段树节点 merge 是根据左右儿子节点,确定本节点的值
func NewLazySegmentTreeWithNums ¶
func NewLazySegmentTreeWithNums(nums []int, merge func(lo, ro int) int) *LazySegmentTree
NewLazySegmentTreeWithNums 根据数组初始化线段树,左右边界为:[1, len(nums)] merge 是根据左右儿子节点,确定本节点的值
func NewSumLazySegmentTree ¶
func NewSumLazySegmentTree(left, right int) *LazySegmentTree
NewSumLazySegmentTree 初始化区间和的线段树节点
func NewSumLazySegmentTreeWithNums ¶
func NewSumLazySegmentTreeWithNums(nums []int) *LazySegmentTree
NewSumLazySegmentTreeWithNums 根据数组初始化区间和线段树,左右边界为:[1, len(nums)]
func (*LazySegmentTree) Add ¶
func (t *LazySegmentTree) Add(left, right int, add int)
Add 区间增加 区间 [left, right] 的值都加上 add
func (*LazySegmentTree) Query ¶
func (t *LazySegmentTree) Query(left, right int) int
Query 根据配置的 merge 函数,查询区间 [left, right] 的值
func (*LazySegmentTree) Update ¶
func (t *LazySegmentTree) Update(left, right int, value int)
Update 区间覆盖 把区间 [left, right] 的值都修改为 value
type SegmentTree ¶
type SegmentTree struct {
// contains filtered or unexported fields
}
SegmentTree 动态开点线段树·其一·单点修改
func NewSegmentTree ¶
func NewSegmentTree(left, right int, merge func(lo, ro int) int) *SegmentTree
NewSegmentTree 初始化线段树 merge 是根据左右儿子节点,确定本节点的值
func NewSegmentTreeWithNums ¶
func NewSegmentTreeWithNums(nums []int, merge func(lo, ro int) int) *SegmentTree
NewSegmentTreeWithNums 根据数组初始化线段树,左右边界为:[1, len(nums)] merge 是根据左右儿子节点,确定本节点的值
func NewSumSegmentTree ¶
func NewSumSegmentTree(left, right int) *SegmentTree
NewSumSegmentTree 初始化区间和线段树
func NewSumSegmentTreeWithNums ¶
func NewSumSegmentTreeWithNums(nums []int) *SegmentTree
NewSumSegmentTreeWithNums 根据数组初始化区间和线段树,左右边界为:[1, len(nums)]
func (*SegmentTree) Query ¶
func (t *SegmentTree) Query(left, right int) int
Query 根据配置的 merge 函数,查询区间 [left, right] 的值