poj 1651 Multiplication Puzzle【区间DP】

题目链接:?id=1651

题意:初使ans=0,每次消去一个值,位置在pos(pos!=1 && pos !=n) 同时ans+=a[pos-1]*a[pos]*a[pos+1],,一直消元素直到最后剩余2个,求方案最小的ans是多少?

代码:

;inf = 1e18;int n;int a[110];long long dp[110][110];int main(){while (cin>>n){for (int i = 1; i <= n; i++)cin >> a[i];memset(dp, 0, sizeof(dp));for (int k = 2; k <= n – 1; k++)//区间长度{for (int i = 1; i + k <= n; i++)//区间起点{int j = i + k;//区间终点dp[i][j] = inf;for (int r = i + 1; r < j; r++){dp[i][j] = min(dp[i][j], dp[i][r] + dp[r][j] + a[i] * a[r] * a[j]);}}}cout << dp[1][n] << endl;}return 0;}

失败是什么?没有什么.只是更走近成功一步,

poj 1651 Multiplication Puzzle【区间DP】

相关文章:

你感兴趣的文章:

标签云: