社区讨论
线段树求问,悬赏关注
学术版参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mifxzg62
- 此快照首次捕获于
- 2025/11/26 19:49 3 个月前
- 此快照最后确认于
- 2025/11/26 20:49 3 个月前
一个关于线段树的问题。
我个人习惯把线段树的分治信息封装起来
CPPstruct Info{
double maxe;
int cnt;
inline Info operator+(Info other){
Info res;
res.maxe = std:: max(maxe, other.maxe);
return res;
}
};
对于线段树再开一个结构体
CPPstruct Seg{
Info data[MAXN << 2 | 1];
......
void ...
ls = p << 1, rs = p << 1 | 1
data[p] = data[ls] + data[rs]
} seg;
但是这样做就不好写单侧递归线段树了,有没有什么大佬可以给一个两全其美的方案,就是既能保持上面写法,又方便写单侧递归线段树.解惑必关
~感觉还是老老实实写到线段树里面吧~
回复
共 4 条回复,欢迎继续交流。
正在加载回复...