poj3253 优先队列( poj的bug)

8月1日的题3253
3253 Fence Repair(贪心、优先队列)
(这道题看后面的算法思路)
题意:有一位农夫需要n块给定长度的木头,去借锯子时的要求是,每锯下一块,就要付出这块木头长度的费用,求最小费用。
输入:(1)n;(2)n块木头的长度;
输出:最小费用。
思路:
1、基本思路:
(1)显然要锯n次,也就是找一个最好的锯的顺序;
(2)从原题hint中看到,有一个隐含的要求是首先把需要的总长度的木头锯下来。从给的例子看,8 8 5三块。先锯下来21,然后有两种顺序,比如:8+8,剩下的自然是5,此事:21+8+8=37;另一种顺序:5+8,剩下是8,此时:21+5+8=34;显然,如果没有一开始要21的要求,用8+8+5,或5+8+8的顺序都能得到3块木头,费用一样。
2、尝试最直接的贪心:
(1)先把总和的长度cut下来;
(2)然后每次cut最小的(这样最后剩下的一块就是最长的),于是总费用最少;
(3)感觉是不是就做个最简单的排序,把最长的木头挑出来,然后其余相加,再加上总和长度,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值