NYOJ 737 石子合并(一)
题意
- 排成一排的石子,每次合并相邻两堆并由一定的代价,求合并成一堆的最小代价
 
解法
- 区间dp 枚举长度
 - dp[i,j]表示合并石子堆编号从i到j为一堆所需的最小代价(这个题目的代价是sum(i..j))
 - dp[i,j]=min(dp[i,k]+dp[k+1,j]+sum(i...j))
 
代码
int solve(){
    //dp[i][i]=0
    //dp[i][i+1]=sum[i+1]-sum[i-1]
    for(int i=1;i<=N;i++){
        dp[i][i]=0;
    }
    for(int i=1;i<N;i++){
        dp[i][i+1]=sum[i+1]-sum[i-1];//sum[0]=0;
    }
    for(int len=2;len<N;len++){
        for(int i=1;i<=N-len;i++){
            dp[i][i+len]=inf;
            for(int k=i;k<=i+len-1;k++)
            dp[i][i+len]=std::min(dp[i][i+len],dp[i][k]+dp[k+1][i+len]+sum[i+len]-sum[i-1]);
        }
    }
    return dp[1][N];
}
												
											NYOJ 737 石子合并(一)的更多相关文章
- nyoj 737 石子合并        http://blog.csdn.net/wangdan11111/article/details/45032519
		
http://blog.csdn.net/wangdan11111/article/details/45032519 http://acm.nyist.net/JudgeOnline/problem. ...
 - nyoj 737 石子合并(一)。区间dp
		
http://acm.nyist.net/JudgeOnline/problem.php?pid=737 数据很小,适合区间dp的入门 对于第[i, j]堆,无论你怎么合并,无论你先选哪两堆结合,当你 ...
 - nyoj  737 石子合并 经典区间 dp
		
石子合并(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆 ...
 - 题解报告:NYOJ #737 石子合并(一)(区间dp)
		
描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价最小值 ...
 - nyoj 737 石子合并(区间DP)
		
737-石子合并(一) 内存限制:64MB 时间限制:1000ms 特判: No通过数:28 提交数:35 难度:3 题目描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为 ...
 - NYOJ 737 石子合并(一)
		
分析: 本题为区间型动态规划,dp[i][j] 表示从第 i 堆合并到第 j 堆的最小代价, sum[i][i] 表示第 i 堆到第 j 堆的石子总和,则动态转移方程: dp[i][j] = min( ...
 - ny737 石子合并(一) 总结合并石子问题
		
描述: 在一个圆形操场的四周摆放着n 堆石子.现要将石子有次序地合并成一堆. 规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分. 试设计一个算法,计算出将n堆石子合并 ...
 - NYOJ 石子合并(一) 区间dp入门级别
		
描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价 ...
 - [NYIST737]石子合并(一)(区间dp)
		
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737 很经典的区间dp,发现没有写过题解.最近被hihocoder上几道比赛题难住了 ...
 
随机推荐
- 如何批量导入excel数据至数据库(MySql)--工具phpMyAdmin
			
之前由于数据储存使用excel保存了所有数据,经过初步数据筛选,数据量近4000条.一条一条录入数据库显然是不可行的.以下是我所操作的步骤: 1.只保留excel的数据部分,去除第一行的具体说明 2. ...
 - SurgingFunction
 - NFS学习
			
linux下搭建nfs服务: NFS是network filesystem的缩写,它可以通过网络,让不同的机器.不同的操作系统共享文件. NFS支持的功能比较多,默认端口也是随机的,基于远程调用服务( ...
 - linux  vim 编辑文件时无法保存
			
操作ESC + : wq 无反应 那么我们操作SHFT按键,在操作Z按键,连续按两下Z按键即可(保存当前内容且退出)
 - Vue接口日常学习
			
最近使用uni.app 进行app的开发 页面搭完之后,发现不会调接口,今天学习了下 各个程序运行时,都会发起网络请求,网络相关的API在使用之前都会在使用前配置域名白名单 首先 现在中间件上一 ...
 - Ubuntu启动流程
			
网上很多Linux的启动流程图,也有Ubuntu早期版本的启动流程介绍,却少有近期版本的启动流程介绍(16.04).这里作出总结归纳. Linux系统采用的是RedHat启动方式,启动流程如下: Ub ...
 - BA-Bacnet ip 、TCP/IP
			
BACENT IP TCP/IP协议
 - BA--暖通系统常见设计细节要点
			
(一)系统设计问题 1.水泵在系统的设计位置: 一般而言,冷冻水泵应设在冷水机组前端,从末端回来的冷冻水经过冷冻水泵打回冷水机组:冷却水泵设在冷却水进机组的水路上,从冷却塔出来的冷却水经冷却水泵打回机 ...
 - HDU 2815
			
特判B不能大于等于C 高次同余方程 #include <iostream> #include <cstdio> #include <cstring> #includ ...
 - Android面试过程描写叙述
			
1.之前所写项目的介绍 2.android一些常见问题的问答 3.关于android平时非常少用到但实则非常重要的问题描写叙述 技术分析 1自我感觉面试中比較好的方面: 1.熟悉掌握之前所写项目 2. ...