長さ n の整数配列 xs の最大区間和を求める問題を考える

定義

長さ n の整数配列 xs に対して、

xs の最大区間和 := max {xs[begin] + … + xs[end-1] | 0 ≤ begin ≤ end ≤ n}
xs の最大 prefix 和 := max {xs[0] + … + xs[end-1] | 0 ≤ end ≤ n}
xs の最大 suffix 和 := max {xs[begin] + … + xs[n-1] | 0 ≤ begin ≤ n}

と定義する。

1. 最大区間和DP

最大区間和をDPで直接求める方法

2. 最大区間和モノイド

以下の4つの情報を元に持つモノイドを考える