动态规划 Multiplication Puzzle poj 1651
2011-09-25 15:21
375 查看
题目连接:http://poj.org/problem?id=1651
题目大意:给你一个数字序列abcde……,从中不断的取出数字,不能取头和尾的数据,每次取出一个数时,代价为这个数*它前面的那个数*它后面的那个数,然后次数不放回,知道剩下两个数为止,求最小代价。
代码:
题目大意:给你一个数字序列abcde……,从中不断的取出数字,不能取头和尾的数据,每次取出一个数时,代价为这个数*它前面的那个数*它后面的那个数,然后次数不放回,知道剩下两个数为止,求最小代价。
代码:
#include <iostream> #include <cstring> #include <limits> using namespace std; const int INTMAX = numeric_limits<int>::max(); int dp[101][101]={0};//dp[i][j]为i到j之间的数全部取尽(不包括i和j)的得分的最小值 int i,j,d,k; int N,data[101],temp; int main() { cin>>N; for(i=1;i<=N;i++){ cin>>data[i]; } for(d=2;d<=N-1;d++){ for(i=1;i+d<=N;i++){ j=i+d; dp[i][j]=INTMAX; for(k=i+1;k<j;k++){//k为i和j之间的划分及ij之间的所有数中最后去k temp=dp[i][k]+dp[k][j]+data[i]*data[k]*data[j]; if(temp<dp[i][j]){ dp[i][j]=temp; } } } } cout<<dp[1] <<endl; return 0; }
相关文章推荐
- Multiplication Puzzle POJ - 1651 区间dp
- POJ1651:Multiplication Puzzle(简单dp)题解
- POJ 1651 - Multiplication Puzzle(区间DP,矩阵链乘三种模版详解)
- POJ 1651 Multiplication Puzzle DP 类似矩阵链
- POJ - 1651 - Multiplication Puzzle
- Multiplication Puzzle POJ - 1651
- poj - 1651 - Multiplication Puzzle(dp)
- Multiplication Puzzle POJ - 1651 区间dp 好题
- POJ 1651 区间DP Multiplication Puzzle
- 【POJ 1651】【区间DP 矩阵链乘的变形】Multiplication Puzzle【一串数字,除了头尾不能动,每次取个数字,它与左右相邻数字的乘积为其价值,求价值和最小】
- [区间DP] Multiplication Puzzle POJ - 1651
- POJ 1651:Multiplication Puzzle(区间DP)
- poj 1651 Multiplication Puzzle dp
- DP:Multiplication Puzzle(POJ 1651)
- poj 1651 Multiplication Puzzle(裸区间dp)
- POJ 1651 Multiplication Puzzle DP
- POJ 1651 - Multiplication Puzzle(区间DP)
- POJ 1651 Multiplication PuzzleDP方法:
- 最优矩阵链乘(动态规划dp)POJ 1651 Multiplication Puzzle
- POJ 1651 Multiplication Puzzle 动态规划及搜索