社区讨论

线段树求问,悬赏关注

学术版参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mifxzg62
此快照首次捕获于
2025/11/26 19:49
3 个月前
此快照最后确认于
2025/11/26 20:49
3 个月前
查看原帖
一个关于线段树的问题。
我个人习惯把线段树的分治信息封装起来
CPP
struct Info{
    double maxe;
    int cnt;
    inline Info operator+(Info other){
        Info res;
        res.maxe = std:: max(maxe, other.maxe);
        return res;
    }
};
对于线段树再开一个结构体
CPP
struct Seg{
    Info data[MAXN << 2 | 1];
    ......
    void ...
        ls = p << 1, rs = p << 1 | 1
        data[p] = data[ls] + data[rs]
} seg;
但是这样做就不好写单侧递归线段树了,有没有什么大佬可以给一个两全其美的方案,就是既能保持上面写法,又方便写单侧递归线段树.解惑必关
~感觉还是老老实实写到线段树里面吧~

回复

4 条回复,欢迎继续交流。

正在加载回复...