人与独木舟

augustinlouis 2010-03-03 01:58:38
计划进行独木舟旅行,独木舟之间没有区别。独木舟有最大载重量。

1:设每个独木舟最多只能载2个人,且人的重量不能超过最大载重量。读入最大载重量,旅客的数目和每个旅客的重量,
计算安置所有旅客所需的最少独木舟个数
2:其余条件不变,但独木舟载人的个数没有限制,求所需的最少独木舟个数


ps:我想到的是贪心,想看看大家的想法,尤其是贪心策略正确性的证明
...全文
329 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2010-03-05
  • 打赏
  • 举报
回复
如果不限每船两人的话,就是NPC的了,规模小的话可以搜索,规模大的话就无法找最优解了。
keeya0416 2010-03-05
  • 打赏
  • 举报
回复
引用 9 楼 pioneer604 的回复:
引用 7 楼 diablox0147 的回复:第二问每次选择几个人,他们的 全部重量尽量接近船的载重量就可以了...
这样做有问题,假设载重量为6,人的重量为,2,2,2,4,4,3 按以上算法需要四条船,实际三条就可以了

你这个是把最小的都给耗完了,导致后边的资源浪费。
如果从最大的找起,尽量找到最接近船的载重的话,貌似可以;期待牛人证明。
  • 打赏
  • 举报
回复
引用 6 楼 augustinlouis 的回复:
如hblac所言,的确第二问不能用贪心啊!(独木舟上的人的数量没有限制),有谁能提示我一下第二问该怎么做吗?


没看到第二问,不好意思!
diablox0147 2010-03-04
  • 打赏
  • 举报
回复
第二问每次选择几个人,他们的 全部重量尽量接近船的载重量就可以了...
augustinlouis 2010-03-04
  • 打赏
  • 举报
回复
如hblac所言,的确第二问不能用贪心啊!(独木舟上的人的数量没有限制),有谁能提示我一下第二问该怎么做吗?
pioneer604 2010-03-04
  • 打赏
  • 举报
回复
不知道能不能用反证法证出来
pioneer604 2010-03-04
  • 打赏
  • 举报
回复
我觉得7楼的思路是对的,首先每次在剩下的人中选出总重量最接近载重量的,如果有相同的,则取人数最少的,如果仍有相同,则取每组中最轻的那个人最重的,比如(4,4,3),(5,4,2),就取(4,4,3),然后再从剩下的人中选出总重量最接近载重量的,如此循环,没有经过严格证明,只是猜想
pioneer604 2010-03-04
  • 打赏
  • 举报
回复
引用 7 楼 diablox0147 的回复:
第二问每次选择几个人,他们的 全部重量尽量接近船的载重量就可以了...

这样做有问题,假设载重量为6,人的重量为,2,2,2,4,4,3 按以上算法需要四条船,实际三条就可以了
绿色夹克衫 2010-03-03
  • 打赏
  • 举报
回复
这个问题一个船只能装2个人,所以贪心是对的!

引用 4 楼 hblac 的回复:
1.贪心法正确 标准的证明贪心法正确的方法就可以了
2.贪心不正确  反例如下:设最大载重量为100,旅客分别重为60,30,30,20,20,20,20
如果用贪心,需要3个船  60 30,30 20 20 20,20
事实上2个船就可以了    60 20 20,30 30 20 20
hblac 2010-03-03
  • 打赏
  • 举报
回复
1.贪心法正确 标准的证明贪心法正确的方法就可以了
2.贪心不正确 反例如下:设最大载重量为100,旅客分别重为60,30,30,20,20,20,20
如果用贪心,需要3个船 60 30,30 20 20 20,20
事实上2个船就可以了 60 20 20,30 30 20 20
BuleRiver 2010-03-03
  • 打赏
  • 举报
回复
我想到的也是贪心算法
  • 打赏
  • 举报
回复
1》先排序

2》每次选最轻的,然后选和他重量之和最接近载重量的人
i>找得到,那么加1个独木舟,去掉这两个人
ii>找不到,那么剩下的人每人一个独木舟
luoyeyu 2010-03-03
  • 打赏
  • 举报
回复
1,每次选最重的 跟最轻的 两个和大于载重量 就最重的人坐 否 就两个人 这样计算出个数
2,选出最重的,再从剩下的选出尽量重,尽量多的人 一起乘一个船



33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧