解题思路:
注意事项:
参考代码:
#include<iostream>
using namespace std;
int n,a[1001],dp[1001][1001],sum[1001];
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
sum[i] = sum[i - 1] + a[i];
}
for (int len = 1; len < n; len++)
{
for (int i = 1; i + len <= n; i++)
{
int j = i + len;
for (int k = i; k < j; k++)
{
if(dp[i][j])
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j]+ sum[j] - sum[i - 1]) ;
else
dp[i][j]= dp[i][k] + dp[k + 1][j] + sum[j] - sum[i - 1];
}
}
}
cout << dp[1][n] << endl;
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:1484 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:737 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |
a+b浏览:452 |
简单的a+b (C语言代码)浏览:457 |
关于float,double变量的几点说明浏览:1926 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:1968 |
1048题解(读入回车问题)浏览:628 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:331 |