关于分段dp的一个小细节
Posted Mint-hexagram
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于分段dp的一个小细节相关的知识,希望对你有一定的参考价值。
for(int i=1; i<=n; i++) { dp[i][0]=sum[i]; for(int j=1; j<=min(i-1, m); j++) for(int k=1; k<i; k++) dp[i][j]=max(dp[i][j],dp[k][j-1]*(sum[i]-sum[k])); }
这是一般的分段dp模版
我对dp式的意义有一些新的理解:
在dp[i][j] = max(dp[i][j],dp[k][j-1] * (sum[i] - sum[k]))中
dp[k][j-1]是断点(算符位置)之前的区间在当前分段方法下得到的数据
而dp[k][j-1]是断点(算符位置)之后的区间在当前分段方法下得到的数据
以上是关于关于分段dp的一个小细节的主要内容,如果未能解决你的问题,请参考以下文章