例题:圣诞老人的礼物

1、贪心算法

算法基础(六):贪心算法

只考虑眼前最大的操作,不考虑后续

注意:假如不能分开取,则不是贪心算法,对于这道题重点就是可以将整箱分开取

2、圣诞老人的礼物

算法基础(六):贪心算法

算法基础(六):贪心算法

价值最大,但是重量一定,所以优先挑选那些价值重量比大的糖果

算法基础(六):贪心算法

首先按价值/重量比排序,并且假如不能全部装下,则分成小份

代码:

算法基础(六):贪心算法

重载compare,按照价值/重量比排序,然后从大到小选

算法基础(六):贪心算法

假如可以整箱拿,则整箱,不然则只拿w-现有的重量

最后浮点数保留一位小数,printf("%.1f")

注意:假如不能分开取,则不是贪心算法,对于这道题重点就是可以将整箱分开取

2、电影节

算法基础(六):贪心算法

算法基础(六):贪心算法

尽可能选结束时间早的电影,则按照结束时间从小到大排序

算法基础(六):贪心算法

并且判断电影时间不冲突即可添加该部电影

3、畜栏问题

算法基础(六):贪心算法

算法基础(六):贪心算法

按开始时间处理奶牛,是一个正常的思路,毕竟奶牛开始时间到了必须得处理,而寻找畜栏也是按照正常思路找出最早结束的,所以贪心算法必然成立

算法基础(六):贪心算法

4、放置雷达

算法基础(六):贪心算法

雷达位置不一定是整点

算法基础(六):贪心算法

雷达的位置可以看成一个区间,区间可以用勾股定理求得

算法基础(六):贪心算法

算法基础(六):贪心算法

依次考虑,将firstnoconverd向下移,

算法基础(六):贪心算法

算法基础(六):贪心算法

6、钓鱼

算法基础(六):贪心算法

算法基础(六):贪心算法

算法基础(六):贪心算法

一个时间片及在这个时间片所钓到的鱼的数目

算法基础(六):贪心算法

算法基础(六):贪心算法


相关文章: