您的位置:首页 > 其它

51nod 1021 石子归并

2018-02-09 18:01 218 查看
区间dp

递推比递归的常数要小  所以还是尽量学会递推吧

看题解  各种恶心啊  有木有

还是视频讲的直接呃   不过就是讲的有点儿慢

 

链接:https://www.bilibili.com/video/av12159085/

 

#include<bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
int dp[120][120],s[120],sum[120];

int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&s[i]),sum[i] = sum[i-1] +s[i];
//先枚举区间长度即r-l
for(int d=1;d < n;d++)
{
for(int i=1,j;(j=i+d)<=n;i++)//再枚举区间起点
{
dp[i][j] = inf;
for(int k=i;k<j;k++)
dp[i][j] = min(dp[i][k]+dp[k+1][j],dp[i][j]);
dp[i][j] += sum[j]-sum[i-1];
}
}

printf("%d\n",dp[1]
);

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: