zoj1276 Optimal Array Multiplication Sequence(DP)
2011-08-17 13:26
197 查看
/* 矩阵连乘,区间动态规划 */
/*
状态:DP[ l ][ s ] ——以 s 开始长度为 l 的区间的 矩阵乘积的最小值
阶段:区间长度
决策:DP[ l ][ s ] = min( DP[ k ][ s ] + DP[ l-k ][ s+k ] + 乘法代价 ) {1<k<l}
*/
View Code
/*
状态:DP[ l ][ s ] ——以 s 开始长度为 l 的区间的 矩阵乘积的最小值
阶段:区间长度
决策:DP[ l ][ s ] = min( DP[ k ][ s ] + DP[ l-k ][ s+k ] + 乘法代价 ) {1<k<l}
*/
View Code
#include <iostream> #include <cstdlib> #include <cstring> using namespace std; struct node { int R,C; }X[ 11 ]; int DP[ 11 ][ 12 ]; int DI[ 11 ][ 12 ]; void print( int l, int s ) { if ( l > 1 ) { cout << "("; print( DI[ l ][ s ], s ); cout << " x "; print( l-DI[ l ][ s ], s+DI[ l ][ s ] ); cout << ")"; }else cout << "A" << s; } int main() { int n,t = 1; while ( cin >> n && n ) { for ( int i = 1 ; i <= n ; ++ i ) cin >> X[ i ].R >> X[ i ].C; memset( DP, 0, sizeof( DP ) ); for ( int l = 2 ; l <= n ; ++ l ) for ( int s = 1 ; s+l-1 <= n ; ++ s ) { DP[ l ][ s ] = 0xffffff; for ( int k = 1 ; k < l ; ++ k ) { int Temp = DP[ k ][ s ] + DP[ l-k ][ s+k ] + X[ s ].R*X[ s+k ].R*X[ s+l-1 ].C; if ( DP[ l ][ s ] > Temp ) { DP[ l ][ s ] = Temp; DI[ l ][ s ] = k; } } } //cout << DP[ n ][ 1 ] << endl; cout << "Case " << t ++ << ": "; print( n, 1 ); cout << endl; } }
相关文章推荐
- UVA(348)——Optimal Array Multiplication Sequence(区间dp)
- UVa 348 Optimal Array Multiplication Sequence (DP 最优矩阵链乘)
- UVA 348 & ZOJ 1276 Optimal Array Multiplication Sequence(dp , 矩阵链相乘问题)
- ZOJ1276 Optimal Array Multiplication Sequence dp
- Optimal Array Multiplication Sequence+uva+简单区间dp
- AYITACM2016省赛第三周I - Optimal Array Multiplication Sequence(dp)
- uva 348 Optimal Array Multiplication Sequence (DP)
- UVa 348 Optimal Array Multiplication Sequence (区间DP&矩阵链乘,MCM)
- UVA 348 Optimal Array Multiplication Sequence (区间DP)
- zju/zoj 1276 Optimal Array Multiplication Sequence(dp)
- UVa 348 Optimal Array Multiplication Sequence (DP 最优矩阵链乘)
- Optimal Array Multiplication Sequence UVA - 348 (最优矩阵链乘+递归输出路径+区间dp)
- Optimal Array Multiplication Sequence - UVa 348 dp
- uva 348 Optimal Array Multiplication Sequence(区间dp)
- UVA 348 Optimal Array Multiplication Sequence 最优矩阵链乘 区间DP
- UVA 348 Optimal Array Multiplication Sequence(区间dp)
- 矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
- ZOJ 1276 Optimal Array Multiplication Sequence(矩阵连乘)
- UVa348 - Optimal Array Multiplication Sequence
- uva 348 Optimal Array Multiplication Sequence