非常六加一


私信TA

用户名:dotcpp0637387

访问量:64

签 名:

等  级
排  名 30234
经  验 502
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 清北大学
专  业

  自我简介:

TA的其他文章

dp区间问题~~~~
浏览:56

解题思路:

注意事项:

参考代码:

#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 人评分

  评论区

  • «
  • »