区间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]));