区间dp专题练习

假如想象 提交于 2019-11-26 19:34:06

区间dp专题练习

题意

1.Equal Sum Partitions

? 这嘛东西,\(n^2\)自己写去

\[\ \]

\[\ \]

2.You Are the One

感觉自己智力被吊打

\(dp[i][j]\)表示 , 对于当前的一个空栈 , \(i\)\(j\)这一段都出栈的最小花费

显然是长得一副区间(诡)dp(异)的样子 , 如何转移呢?(建议自己想想吧)

对于一个\(dp[i][j]\),因为这个\(i\)必须是最先入栈的 , 所以我们可以枚举它的出栈时间\(k\) , 那么总贡献就是

\[dp[i+1][k]+(k-i)*a[i]+sum[k+1..j] \cdot (k-i+1)\]

即先出栈的\(i+1...k\)的贡献和+i自己的贡献+\(k+1..j\)这一段的贡献和它们被推迟\(k-i+1\)位产生的贡献

rep(i,1,n) rep(j,i+1,n) dp[i][j]=1e9;
rep(i,1,n) dp[i][i]=a[i];
drep(i,n,1) 
    rep(j,i,n) 
        rep(k,i,j) 
            dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j]+(k-i)*a[i]+(k-i+1)*(s[j]-s[k]));
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!