贪心算法
你好-我很好
这个作者很懒,什么都没留下…
展开
-
贪心算法-背包相关问题1
贪心法本节讨论一下贪心算法,这个算法的一大优点是实现起来比较简单,但是它的缺点是求出来是近似最优解,即不一定是最优解,这也直接导致了这个算法的适用面大大减小。背包相关问题——–最优装载问题给出n个物体,第i个的重量是Wi,尽量选择多的物体,使总重量不超过C这种问题是很简单的一类背包问题,很明显,先装小的,肯定能装的更多,所以我们只需要把它们排个序就行,像c,java等语言,都有自带的sort函数,用原创 2018-05-03 18:11:53 · 205 阅读 · 0 评论 -
贪心算法-背包相关性问题2
背包相关问题-部分背包问题有n个物体,第i个的重量是Wi,价值为Vi.在总重量不超过C的情况下,如何让价值最大,每个物体都可以取走一部分。这个题的思路其实也挺直观的,典型的贪心策略就是挑性价比最高的,即单位质量价值最高的,因为可以拆开拿,所以最后整个背包要么是全装满了,要么是东西不够多,不可能出现第三种情况。代码如下:原创 2018-05-03 19:12:56 · 226 阅读 · 0 评论 -
贪心算法-背包相关问题3
背包相关问题3-乘船问题有n个人,第i个人重量为Wi,每艘船最多只能载两个人,最大载重为C,求最少需要几只船? 这个问题可以算做稍难的背包问题了,粗看,并没有一个很好的办法,想把这些人按重量排序,但排序又什么用呢,其实,我们再细想想,就会有头绪了,要想船最少,肯定希望有更多的船能载两个人,这时候,最轻的那个人就发挥作用了,我们假设这个人重量为x,那个当重量大于C-x的人一定只能坐一条船了,所以,思原创 2018-05-03 19:44:16 · 278 阅读 · 0 评论 -
贪心算法-区间相关问题1
区间相关问题-选择不相交的区间数轴上有n个开区间(ai,bi),尽力那个选择多个区间,使得这些区间两两没有公共点。解决这类问题,首先我们要将bi按顺序排好,然后需要明确一点,一定要选择第一个区间,为什么?因为不管在哪种情况下,选第一个都不会吃亏,不相信你自己讨论一下,将bi排好后,再依次查找,当有ai大于等于bi时,重新取点,区间计数加一。代码如下:(我这边假设顺序已经排好):原创 2018-05-03 20:59:03 · 380 阅读 · 0 评论