在 P1115 最大子段和 用线段树实现 O(n) 的分治做法后,我决定用 DP 解决本题。
DP 方程如下:
0 a[i] INF
(0,dp[i+1],ans[i+1])=(0,dp[i],ans[i])*( INF a[i] 0 )
INF INF 0
思路与 P1115 大致相同,只是要多一位 ans 统计答案(前面的 DP 值的最大者),所以可以用动态 DP 方法解决此题。
不过如果使用优化过的矩阵,转移方程就和普通的线段树维护操作一样了。
由此不难得知此题可以有树上版本,好像只从线段树维护区间也可以看出来, 不知道洛谷上面有没有这样的题?