首页 > 其他 > 详细

51Nod 1021 石子归并

时间:2017-09-15 19:29:40      阅读:159      评论:0      收藏:0      [点我收藏+]

1021 石子归并

 

区间dp

技术分享
 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 int s[1000000],dp[1000][1000],n,m,tot;
 5 using namespace std;
 6 int main()
 7 {
 8     memset(dp,0x7f,sizeof(dp));
 9     cin>>n;
10     for(int i=1;i<=n;i++)
11     {
12         cin>>s[i];
13         s[i]+=s[i-1];
14     }
15     for(int i=1;i<=n;i++) dp[i][i]=0;
16     for(int i=1;i<=n;i++)
17         for(int j=i-1;j>=0;j--)
18             for(int k=j;k<i;k++)
19             dp[j][i]=min(dp[j][i],dp[j][k]+dp[k+1][i]+s[i]-s[j-1]);
20     cout<<dp[1][n];
21     return 0;
22 }
View Code

 

51Nod 1021 石子归并

原文:http://www.cnblogs.com/chen74123/p/7527749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!