NYoj737 石子合并(区间dp)
来源:互联网 发布:烟台鼎中网络怎么样 编辑:程序博客网 时间:2024/05/16 10:18
题意: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。
解法:动态规划的思想。先求出所有区间长度为2的合并代价,然后再算出长度为3的、4的。。。。n的。复杂度是N^3,貌似楼教的一道同样问题有更快的算法,会尽快去膜拜,。,。,。
代码:
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;int n;int num[210];long long sum[210];long long ans[210][210];int main(){ while(scanf("%d",&n)==1) { memset(ans,0,sizeof ans); for(int i=1;i<=n;i++) scanf("%d",num+i),sum[i]=sum[i-1]+num[i]; for(int i=1;i<n;i++) { for(int k=1;k+i<=n;k++) { long long tool=1000000000000; for(int j=0;j<i;j++) { tool=min(tool,ans[k][k+j]+ans[k+j+1][i+k]); } ans[k][i+k]=tool+sum[i+k]-sum[k-1];//cout<<tool<<endl; } } cout<<ans[1][n]<<endl; } return 0;}
0 0
- NYoj737 石子合并(区间dp)
- nyoj737石子合并(一)【区间dp】
- nyoj737 石子合并(一) 区间DP
- nyoj737 区间dp(合并石子)
- NYOJ737 石子合并(区间DP)
- nyoj737石子合并【区间dp】
- nyoj737 石子合并 区间dp
- 区间DP-NYOJ737石子合并
- 石子合并 nyoj737 区间dp
- NYOJ737:石子合并(一)(区间dp入门)
- nyoj737 石子合并(一)(区间dp)
- NYOJ737 石子合并(一)(区间dp,详细)
- NYOJ737石子合并(一)
- NYOJ737石子合并(一)
- nyoj737 石子合并(一)
- 石子合并(区间dp)
- 石子合并 (区间DP)
- 区间DP(石子合并)
- WIFI 鉴权方式-名词解释
- IIS 7 发布网站
- 菜鸟入门,用eclipse安装hibernate插件实现反向工程
- POJ 2761 静态区间K大
- Delphi异常处理总结
- NYoj737 石子合并(区间dp)
- 简单的登录程序
- css入门之html选择器,ID选择器,类选择器,属性选择器
- EAX、ECX、EDX、EBX寄存器的作用
- Ogre引擎源码——Timer
- RMAN-06169: 无法读取数据文件的文件标头7错误原因
- HDU 4757 可持久化字典树(Trie)
- 请让我们回到爱开始的地方
- 混淆的艺术-(苍井空变凤姐)Proguard源码分析(二)Proguard参数解析