poj1651 Multiplication Puzzle(区间DP)
来源:互联网 发布:网络攻防技术技能试卷 编辑:程序博客网 时间:2024/06/07 20:02
题意:给出一串数字,第一个和最后一个数字不能抽取,每一次抽取一个数字得到的价值为这个数字和相邻两个数字的乘积,问把整个序列最后只剩下第一个和最后一个数字时的最小价值。
思路:区间DP经典题,我们令dp[i][j]为第i到第j个数字去光后的价值,转移方程dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[j]*a[k])
#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>using namespace std;#define maxn 100000#define LL long longint cas=1,T;int dp[105][105];int a[105];int main(){int n;while (scanf("%d",&n)!=EOF){for (int i = 0;i<n;i++)scanf("%d",&a[i]);for (int i = 0;i<n-2;i++)dp[i][i+2]=a[i]*a[i+1]*a[i+2];int len;for (len=3;len<n;len++){for (int i = 0;i+len<n;i++){int j = len+i;for (int k = i+1;k<j;k++){if (dp[i][j]==0)dp[i][j]=dp[i][k]+dp[k][j]+a[i]*a[j]*a[k];dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);}}}printf("%d\n",dp[0][n-1]);}//freopen("in","r",stdin);//scanf("%d",&T);//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return 0;}
0 0
- poj1651 Multiplication Puzzle(区间DP)
- poj1651 Multiplication Puzzle(区间DP)
- POJ1651:Multiplication Puzzle(区间dp)
- Multiplication Puzzle (区间dp) poj1651
- POJ1651:Multiplication Puzzle(区间DP)
- poj1651 Multiplication Puzzle 区间dp
- POJ1651-Multiplication Puzzle-区间DP
- POJ1651:Multiplication Puzzle(区间DP)
- POJ1651 Multiplication Puzzle 区间DP
- poj1651 Multiplication Puzzle(区间dp)
- poj1651 Multiplication Puzzle 【区间dp】
- poj1651 Multiplication Puzzle--区间dp
- poj1651 Multiplication Puzzle(区间dp)
- POJ1651 Multiplication Puzzle ACM解题报告(区间dp)
- POJ1651——Multiplication Puzzle(区间dp)
- POJ1651:Multiplication Puzzle(简单dp)题解
- POJ1651:Multiplication Puzzle(区间DP 最优矩阵链乘)
- poj1651-Multiplication Puzzle-区间dp/矩阵链乘
- 第一次上机实验
- Scala函数解析
- Java中的内部类
- Github简单教程--入门
- hybrid app
- poj1651 Multiplication Puzzle(区间DP)
- boost 与 string 的应用
- Android Data Binding框架指南
- lintcode:Subsets II
- 面向协议编程
- 从此不求人:自主研发一套PHP前端开发框架(9)
- 【HowTo ML】分类问题->逻辑回归
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- ACM ProblemR