资源描述:
《贪心算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
贪心算法byhyliu第一页,共十四页。
1贪心法是什么?贪心法就是遵循某种规律,不断贪心地选取当前最优策略的算法设计方法。第二页,共十四页。
2硬币问题题目大意:有1元、5元、10元、50元、100元、500元的硬币各C1、C5、C10、C50、C100、C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定本题至少存在一种支付方案。限制条件0<=C1,C5,C10,C50,C100,C500<=10^90<=A<=10^9第三页,共十四页。
3区间调度问题题目大意:有n项工作,每项工作分别在S[i]时间开始,在T[i]时间结束。对于每项工作,你都有可以选择参与与否。如果选择了参与,那么自始自终都必须全程参与。 此外,参与工作的时间段不能重叠(即使是开始的瞬间和结束的瞬间的重叠也是不允许的),目标是尽可能参加更多的工作,问最多能参加多少项工作。限制条件:1<=N<=1000001<=si<=ti<=10^9第四页,共十四页。
4贪心策略(1)在可选的工作中,每次选取结束时间最早的工作。(2)在可选的工作中,每次选取用时最短的工作。(3)在可选的工作中,每次都选取与最少可选工作有重复的工作。第五页,共十四页。
5POJ3617题目大意:给定长度为N的字符串S,要构造一个长度为N的字符串T。起初,T是一个空串,随后反复进行下列任意操作。从S的头部删除一个字符,加到T的尾部从S的尾部删除一个字符,加到T的尾部目标是构造字典序尽可能小的字符串。限制条件:1<=N<=2000字符串S只包含大写英文字母。第六页,共十四页。
6贪心策略idea1:不断取S的开头和末尾中较小的一个字符放到T的末尾idea2:按照字典序比较S与S’,S’为S的反转。S字典序较小则取头,反之则取尾。第七页,共十四页。
7POJ3069题目大意:一个直线上有N个点。点i的位置是Xi。从这些点中选取若干个加上标记。要求:对于每个点,与其距离为R的范围内必有做标记的点(包括自身)。求至少标记多少点才能满足要求。输入:N,R,以及N个点各自距原点的距离(①不一定按照顺序,故需要排序②可以重叠)。输出:被标记的点的最少个数。限制条件:1<=N<=10000<=R<=10000<=Xi<=1000第八页,共十四页。
8贪心策略:每次寻找未被覆盖的点,向右找在R范围内距离其最远的点作为标记点。第九页,共十四页。
9POJ3253题目大意:有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长度给定各个要求的小木板的长度,及小木板的个数n,求最小费用限制条件:1<=N<=200000<=Li<=50000第十页,共十四页。
10POJ3253题目大意:有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长度给定各个要求的小木板的长度,及小木板的个数n,求最小费用限制条件:1<=N<=200000<=Li<=50000第十一页,共十四页。
11POJ3253题目大意:有一个农夫要把一个木板钜成几块给定长度的小木板,每次锯都要收取一定费用,这个费用就是当前锯的这个木版的长度给定各个要求的小木板的长度,及小木板的个数n,求最小费用限制条件:1<=N<=200000<=Li<=50000第十二页,共十四页。
12谢谢第十三页,共十四页。
13内容总结贪心算法。贪心法就是遵循某种规律,不断贪心地选取当前最优策略的算法设计方法。题目大意:有1元、5元、10元、50元、100元、500元的硬币各C1、C5、C10、C50、C100、C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币。0<=C1,C5,C10,C50,C100,C500<=10^9。0<=A<=10^9。如果选择了参与,那么自始自终都必须全程参与。按照字典序比较S与S’,S’为S的反转第十四页,共十四页。