51Nod 1021 石子归并
Posted Alex丶Baker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1021 石子归并相关的知识,希望对你有一定的参考价值。
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 }
以上是关于51Nod 1021 石子归并的主要内容,如果未能解决你的问题,请参考以下文章