贪心研究

定义

贪心是寻找最优解的一种常用方法,本质上就是将一个问题分为若干个步骤,每一步都采取使当前最优的方案,最后叠加得到正确结果。顾名思义,贪心的人往往只关注眼前,也就是说贪心算法不具有回溯功能,所解决的问题有一个前提条件:不具有后效性,即分成的若干部分相互独立,互不干扰。

贪心的基本步骤

  1. 先将问题分成若干相互独立的部分。
  2. 再对于一个每部分,寻找局部最优解。
  3. 最后将局部最优解结合起来成为最后的解。

一些提示

我们知道贪心只能解决无后效性的问题,那对于有后效性的问题,如:01背包问题时,采用贪心有时能拿部分分(万不得已之时可以这样),因为贪心的代码实现比较容易.
然后,对于贪心能否使用,应该证明。但是,比赛的时候往往是一种直觉,手玩样例之后就一般有所发现,有时候我们在那种环境下也无法或不能严格证明,不妨大胆尝试(记得之后再自己造几个数据看看对不对哦)。
(下面的一些证明都是我觉得对的,不严谨之处多多包含!!!)

一些例题

P1223 排队接水
P1031 [NOIP2002 提高组] 均分纸牌
这是我第一次证明的贪心(
上面都是一些比较简单的题目,难度最高黄题(忘了有没有),下面介绍几个绿题以上的。
P1766 液体滴落(数学与贪心的结合)
P2625 豪华游轮(01背包与贪心的结合)

总结

那么,通过这么这几道例题,我们可以发现,贪心只是一种想法,帮助我们解题,它往往与其他东西结合起来(包括树等)。难度越大,题目的综合性也就越大。

posted @ 2023-07-20 21:39  LsmQwQ  阅读(26)  评论(0)    收藏  举报