找回密码
 立即注册
首页 资源区 代码 【信息学奥赛|数据结构模板】线段树

【信息学奥赛|数据结构模板】线段树

毋峻舷 2025-6-4 08:35:10
下面是我的线段树模板,第一篇为纯加法,第二篇为加乘结合。
[code]#include #define MAXN 100010using namespace std;namespace segmentTreeWithoutEternalizing{#define lSon(p) p  r || segTree[p].rgt < l)      return; // exit because of not inside of the segment    if (segTree[p].lft >= l && segTree[p].rgt  r || segTree[p].rgt < l)      return 0; // exit because of not inside of the segment    if (segTree[p].lft >= l && segTree[p].rgt  q >> 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

相关推荐

2025-12-21 16:09:57

举报

感谢发布原创作品,程序园因你更精彩
2025-12-26 16:24:43

举报

2026-1-14 22:19:46

举报

2026-1-15 08:01:47

举报

2026-1-17 23:39:29

举报

2026-2-5 08:41:39

举报

2026-2-8 04:49:41

举报

2026-2-12 03:50:29

举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册
发帖

0

粉丝关注

18

主题发布

板块介绍填写区域,请于后台编辑