一.有N堆石子,每堆的重量是w[i],可以任意选两堆合并,每次合并的花费为w[i]+w[j],问把所有石子合并成为一堆后的最小花费是多少。因为是可以任意合并,所以每次合并的时候选最小的两堆合并,贪心即可。二.有N堆石子,每堆的重量是a[i],排成一条直线,每次只能合并相邻的两堆,直到合成一堆为止,问...
分类:
其他好文 时间:
2015-03-17 17:30:37
阅读次数:
180
题目描述 Description
有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。
输入描述 Input Description
第一行一个整数n(n
第二行n个整数w1,w2...wn (wi
输出描述 ...
分类:
其他好文 时间:
2015-02-28 14:38:33
阅读次数:
184
题目描述 Description在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入描述 Input Description数据的第1行...
分类:
其他好文 时间:
2015-02-07 10:20:03
阅读次数:
176
题目描述Description有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。输入描述Input Description第一行一个整数n(nf[i,k]+f[k...
分类:
其他好文 时间:
2015-01-17 17:45:53
阅读次数:
214
学长一晚上的耐心讲解,使我明白区间DP这么高级的东西,还是挺容易的。也就是在一段区间内的动态规划。 下面用例题进行总结。 例题:石子归并。 描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,并将新的一堆石子数记为该次合并的...
分类:
其他好文 时间:
2014-12-14 14:28:10
阅读次数:
116
这个转移方程不好想,尤其是一段值的解是中间,不明觉厉。dp[i][j] 用i个邮局,覆盖前j个村庄的最小值。
还有就是区间dp的平行四边形优化,这个题的转移方程并不是“区间DP”,所以枚举状态要逆着(很花时间),且用一个邮局覆盖都是从0断开了相当于没有断开。
类比于石子归并,矩阵链乘等标准区间DP,其所需状态之前就已经获得,不用倒推
#include
#include
#incl...
分类:
其他好文 时间:
2014-11-28 21:29:24
阅读次数:
252
设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=100)。每堆沙子有一定的数量。现要将N堆沙子并成为一堆。归并的过程只能每次将相邻的两堆沙子堆成一堆,这样经过N-1次归并后成为一堆。找出一种合理的归并方法,使总的代价最小。...
分类:
其他好文 时间:
2014-10-30 21:02:48
阅读次数:
333
http://acm.nyist.net/JudgeOnline/problem.php?pid=737石子归并:先枚举要合并的区间长,然后枚举相应的区间左端点,最后枚举区间中间的划分点,这样,就可以由小到大递推解决区间问题了。转移方程:dp[i][j]=min(dp[i][j],dp[i][k]+...
分类:
其他好文 时间:
2014-10-20 09:50:04
阅读次数:
249
dp[i][j]=min(dp[i][j],dp[i][k],dp[k+1][j]+sum[i][j]);表示i-j的最小合并代价。 1 #include 2 #include 3 #include 4 5 using namespac...
分类:
其他好文 时间:
2014-10-08 15:25:25
阅读次数:
207
题目:uva 10003 Cutting Sticks
题意:给出一根长度 l 的木棍,要截断从某些点,然后截断的花费是当前木棍的长度,求总的最小花费?
分析:典型的区间dp,其实和石子归并是一样的,花费就是石子的和,那么久不用多说了。
AC代码:
#include
#include
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-09-18 18:53:24
阅读次数:
201