【信息学奥赛|数据结构模板】线段树
下面是我的线段树模板,第一篇为纯加法,第二篇为加乘结合。#include #define MAXN 100010using namespace std;namespace segmentTreeWithoutEternalizing{#define lSon(p) pr || segTree.rgt < l) return; // exit because of not inside of the segment if (segTree.lft >= l && segTree.rgtr || segTree.rgt < l) return 0; // exit because of not inside of the segment if (segTree.lft >= l && segTree.rgtq >> m; vector arr(n); for (int i = 0; i < n; ++i) { cin >> arr; } SegmentTree segTree(n, m); // Initialize the segment tree for (int i = 0; i < n; ++i) { segTree.updateRange(i, i, 1, arr); } while (q--) { int type; cin >> type; int x, y; long long k; if (type == 1) { cin >> x >> y >> k; segTree.updateRange(x - 1, y - 1, k, 0); } else if (type == 2) { cin >> x >> y >> k; segTree.updateRange(x - 1, y - 1, 1, k); } else if (type == 3) { cin >> x >> y; cout
页:
[1]