算竞笔记 - 线段树专题

注: segment_tree 均采用 1-Index 访问; segment_tree::reset(vector&) 中vector为0-Index 区间延迟(Lazy)修改模版 C++ 风格实现 template<typename T> struct segment_tree { struct node { ll l, r; // 区间[l,r] T sum_v; T max_v; // lazy值 T lazy_add; optional<T> lazy_set; ll length() const { return r - l + 1; } ll mid() const { return (l + r) / 2; } }; vector<node> tree; private: ll begin = 1, end = 1; void push_up(ll o) { // 向上传递 ll lc = o * 2, rc = o * 2 + 1; tree[o]....

May 30, 2025 · 18 min · 3652 words · mos9527