USACO Training Section 1.3 Greedy Algorithm

贪心算法

例题:修复牛栏(1999年USACO春季公开赛)

现在我们有一排牛栏,但其中的一些需要修复(就是拿块木板去修理),你最多能使用N(1 ≤ N ≤ 50)块木板,其中每一块木板可以搞定连续的Mi个牛栏。你的任务是使用最少的木板数搞定所有需要修复的牛栏。

想法:

贪心算法最基本的思路是“从一个大型问题较小的部分开始解决,一步一步以至于完成整个问题”(编者说一句:这里我的理解是假如有规模为N的问题,我们可以先试着解决规模为1时的最优情况。接下来在1最优的基础上,加上第2部分…直到把N部分处理完毕)。然而,和其他方法不同的是,贪心算法在每一步的计算中只采用仅对这一步来说最优的方案,而非环顾全局。所以,如果用上面的例题做例子的话,贪心算法在计算N = 5时的方案时,会先了解并沿用N = 4时的最优方案,然后在N = 4最优方案的基础上计算得到N = 5时的最优方案。在这里,N = 4时的除了最优方案之外的任何方案都没有被考虑在内(都被永远的丢掉了)。

贪心算法非常,时间复杂度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值