标题 由题意看可知需要求出两端不连续区间,同时使两个区间的和最大: 区间求和问题可以想到一个常用算法:前缀和。区间 [l,r][l,r] 的和可以用 sum_r-sum_{l-1}sum r −sum l−1 方便地求出。 预处理序列的前缀和后,如何得知某个位置之前和之后的和最大的区间呢?我们可以使用线性 DPDP 求得。设 f1_if1 i 表示位置 ii 之前的最大区间和,f2_if2 i 表示位置 ii 之后的最大区间和。那么有: f1_i=\maxf1 i =max {f1_{i-1}f1 i−1 ,sum_i-sum_{i-k}sum i −sum i−k...