南阳理工OJ_题目737 石子合并(一)
2014-05-08 21:15
218 查看
//和矩阵连乘一样 #include <iostream> #include <cstring> using namespace std; int dp(); void fun(); int a[210]; int d[210][210]; int sum[210][210]; int n; int main() { while(cin >> n) { for(int i = 1; i <= n; i++) { cin >> a[i]; sum[i][i] = a[i]; } memset(d, 0x7f, sizeof(d)); fun(); for(int i = 1; i <= n; i++) d[i][i] = 0; cout << dp() << endl; } } int dp() { for(int k = 2; k <= n; k++) { for(int i = 1; i <= n-k+1; i++) { int j = i+k-1; for(int l = i; l < j; l++) d[i][j] = min(d[i][l] + d[l+1][j] + sum[i][j], d[i][j]); } } return d[1] ; } void fun() { for(int i = 1; i <= n; i++) for(int j = i + 1; j <= n; j++) sum[i][j] = sum[i][j-1]+a[j]; }
相关文章推荐
- 取石子(一) (南阳理工oj 题目23)
- 南阳理工OJ_题目832 合并游戏
- NYOJ题目737石子合并(一)(区间dp)
- (区间dp)南阳理工 acm 737 石子合并(一)
- nyoj737石子合并(一)【区间dp】
- NYIST 737-石子合并(区间DP)
- 南阳理工OJ_题目542 试 制 品
- Nyoj 737: 石子合并(一)(区间DP+四边形优化)
- 南阳理工OJ_题目44 子串和
- 南阳理工OJ_题目448 寻找最大数
- 南阳理工OJ_题目12 喷水装置(二)
- 南阳理工OJ_题目58 最少步数
- nyist 737 石子合并(一)
- nyoj 737 石子合并(一)(区间DP)
- nyoj 737 石子合并(一) 区间动规
- 南阳737 石子合并(一)
- D的小L (南阳理工oj 题目366)
- NYOJ 737石子合并(一)
- NYoj - 737 - 石子合并(一)最详细的详解(区间DP入门题)
- NYOJ 737 — 石子合并(一) 区间dp