UVa:348 Optimal Array Multiplication Sequence
来源:互联网 发布:达拉斯2000年人口数据 编辑:程序博客网 时间:2024/05/01 07:27
早就做出来了一直存在没发。
经典的区间DP。
时间复杂度O(n^3)三重循环分别枚举长度起点切点。
打印路径的思路出自算法导论。
#include <cstdio>#include <iostream>#include <cstdlib>#include <cstring>using namespace std;int s[20][20]= {0};void Print_optimal_parens(int i,int j){ if(i==j) printf("A%d",i); else { printf("("); Print_optimal_parens(i,s[i][j]); printf(" x "); Print_optimal_parens(s[i][j]+1,j); printf(")"); }}int main(){ int N,kase=0; while(scanf("%d",&N)&&N) { int p[20]= {0}; for(int i=1; i<=N; ++i) scanf("%d%d",&p[i-1],&p[i]); int dp[20][20]= {0}; memset(s,0,sizeof(s)); for(int l=1; l<N; ++l) for(int i=1; i+l<=N; ++i) { int j=i+l; for(int k=i; k<j; ++k) { int res=dp[i][k]+dp[k+1][j]+p[i-1]*p[k]*p[j]; if(k==i) {dp[i][j]=res;s[i][j]=k;} if(res<dp[i][j]) { dp[i][j]=res; s[i][j]=k; } } } printf("Case %d: ",++kase); Print_optimal_parens(1,N); printf("\n"); } return 0;}
- uva 348 Optimal Array Multiplication Sequence
- uva:348 - Optimal Array Multiplication Sequence
- uva 348 Optimal Array Multiplication Sequence
- UVA 348 Optimal Array Multiplication Sequence
- UVa 348 - Optimal Array Multiplication Sequence
- uva 348 - Optimal Array Multiplication Sequence
- UVa 348 - Optimal Array Multiplication Sequence
- UVa 348 - Optimal Array Multiplication Sequence
- Uva-348-Optimal Array Multiplication Sequence
- UVa 348: Optimal Array Multiplication Sequence
- UVa:348 Optimal Array Multiplication Sequence
- UVA - 348 Optimal Array Multiplication Sequence
- uva 348 Optimal Array Multiplication Sequence (DP)
- uva 348 - Optimal Array Multiplication Sequence
- UVa 348 Optimal Array Multiplication Sequence(dp)
- UVa 348 - Optimal Array Multiplication Sequence
- uva 348 Optimal Array Multiplication Sequence
- uva 348 Optimal Array Multiplication Sequence
- 如何判断脚本加载完成
- 生成颜色带实例
- ListView中Button的点击事件
- 项目集和项目组合
- 详解Ntbackup的五种备份方式
- UVa:348 Optimal Array Multiplication Sequence
- (step 8.2.12)hdu 1760(A New Tetris Game)
- 精妙的Morris二叉树遍历算法
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调 .
- top命令的Load average 含义及性能参考基值
- 用VS2008打包应用程序为安装文件
- 重建二叉树
- Firefox OS 学习——Gaia settings源码分析(一)
- C语言深度解剖读书笔记(1.关键字的秘密)