> dp[i] = (i まで決めたときに)最後に1にしたのが i であるときのmax。遷移は dp[i] = min(dp[j] | j=0~i-1) 。その後、区間 [l,i] について dp[l~i] に a を足しこむということをやる。segtreeで高速化する(区間addと区間minができれば良い)O((N+M) log N)
dp[i] = (i まで決めたときに)最後に1にしたのが i であるときのmax。遷移は dp[i] = min(dp[j] | j=0~i-1) 。その後、区間 [l,i] について dp[l~i] に a を足しこむということをやる。segtreeで高速化する(区間addと区間minができれば良い)O((N+M) log N)
> なんかこれは自分は典型化できてなかった(ので説明がふわっとしてしまっている)