学习要点:1、概念2、基本要素(+与动态规划算法的差异)3、应用范例:(1)活动安排问题(2)最优装载问题(3)哈夫曼编码(4)最优服务次序问题(5)最小生成树(6)最大边权值最小的生成树(7).......1、概念贪心算法总是作出当前看来是最好的选择。也就是说贪心算法并不从整体最优上加以考虑,它所...
分类:
其他好文 时间:
2014-07-22 23:12:53
阅读次数:
413
http://acm.nyist.net/JudgeOnline/problem.php?pid=708状态转移方程的思路:对于一个数N,可以是N
- 1的状态+1 得到,另外,也可以是(n / 2) * (1 + 1)得到,同理对于任意的奇数p,都有如果n可以整除p,都有f(n / p) + f(...
分类:
其他好文 时间:
2014-04-30 21:26:26
阅读次数:
519
2014-04-28
22:49题目:给定一个整数数组。如果你将其中一个子数组排序,那么整个数组都变得有序。找出所有这样子数组里最短的一个。解法:线性时间,常数空间内可以解决,思想类似于动态规划。通过正反扫描两次,可以得出这个区间的两端。只要存在i
a[j],那么这个区间[i, j]就必须被排序,....
分类:
其他好文 时间:
2014-04-29 16:11:53
阅读次数:
408
m(i,v) = max{m(i-1,v),m(i-1,v-vi) + wi } ,v > vi
分类:
其他好文 时间:
2014-04-29 14:59:56
阅读次数:
599
2014-04-29
00:20题目:给定一个长字符串,和一个词典。如果允许你将长串分割成若干个片段,可能会存在某些片段在词典里查不到,有些则查得到。请设计算法进行分词,使得查不到的片段个数最少。解法:用空间换取时间的动态规划算法,首先用O(n^2)的时间判断每一个片段是否在字典里。这个过程其实可以...
分类:
其他好文 时间:
2014-04-29 14:53:55
阅读次数:
470
2014-04-29
01:05题目:数数从0到n总共有多少个数字‘2’?解法:数位动态规划,可以O(log10(n))时间内解决。代码: 1 // 18.4 Count the
number of 2s from 0 to n. 2 #include 3 using namespace std;....
分类:
其他好文 时间:
2014-04-29 14:44:34
阅读次数:
380
2014-04-29
04:30题目:给定一个由‘0’或者‘1’构成的二维数组,找出一个四条边全部由‘1’构成的正方形(矩形中间可以有‘0’),使得矩形面积最大。解法:用动态规划思想,记录二维数组每个元素向上下左右四个方向各有多少个连续的‘1’,然后用O(n^3)时间计算出满足条件的最大正方形。时间...
分类:
其他好文 时间:
2014-04-29 14:22:02
阅读次数:
518
2014-04-29
04:40题目:给定一个字母组成的矩阵,和一个包含一堆单词的词典。请从矩阵中找出一个最大的子矩阵,使得从左到右每一行,从上到下每一列组成的单词都包含在词典中。解法:O(n^3)级别的时间和空间进行动态规划。这道题目和第17章的最后一题很像,由于这题的时间复杂度实在是高,我动手写...
分类:
其他好文 时间:
2014-04-29 14:21:00
阅读次数:
498
Jump GameGiven an array of non-negative
integers, you are initially positioned at the first index of the array.Each
element in the array represents yo...
分类:
其他好文 时间:
2014-04-28 11:30:27
阅读次数:
551
原题地址:http://www.rqnoj.cn/problem/2解题思路:背包问题。状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1])DP[i][j]表示最多话费i的钱,购买前j+1个物品所能达到的最大价值。解题代码:
1 #inc...
分类:
其他好文 时间:
2014-04-27 21:26:22
阅读次数:
537