题意描述
source: https://www.luogu.com.cn/problem/P4513
维护一个序列,支持两种操作:
- 单点修改
- 区间最大子段和
区间长度 $\in[1,500000]$,操作次数 $\in[1,100000]$,值域是 $[-1000,1000]$。
思路
维护区间和、区间最大前缀和、区间最大后缀和、区间最大子段和。这样很容易合并(详见 pushup
函数),也很容易查询(查询的时候返回一个包含上述四个信息的 std::tuple<int, int, int, int>
四元组,合并类似 pushup
,详见代码 68 行)。
代码
source: https://www.luogu.com.cn/record/46114702
1 |
|