POJ 1651动态规划

http://zh.wikipedia.org/zh/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92

题目描述:依次从左到右给你n个数字,每次取出一个数字(这个数字不能是最两边的数字), 这个数字和它左右两边的数字(一共三个数字)相乘,累加这个数。直到最后仅剩下两个数字。求最后累加的最小值。
分析:dp。 dp[i][j] 表示把第 i 个数字到第 j 个数字之间(不包括i,j)的数字去光后得到的最小值。
设 x[i] 是第 i 个数字的值。
dp[i][j] = min(dp[i][k] + dp[k][j] + x[i] * x[k] * x[j]),i + 1 <= k <= j - 1
所有连续的两个数已经符合要求,即dp[i][i + 1] = 0;

你可能感兴趣的:(动态规划)