• 全部
  • 问答

请教一道贪心算法的问题

ksharp2008 2008-03-22 09:01:16
组织一场比赛,分为游泳赛跟自行车赛,必须在游泳后才能骑自行车。但是游泳池只有一个,参赛人员必须在请一个人游完后才能进入,否则则在池边等待。每个队员的游泳时间跟骑车时间都已知。问怎么安排比赛的人员表演次序才能使比赛最早结束

谢谢大虾,呵呵
...全文
49 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ch_en_xu 2008-03-23
那不就是看最后一个人的骑车时间最短就行了吗?
骑车时间和游泳时间都知道了还比什么,这题目没有任何意义。
回复
tailzhou 2008-03-22
按照各选手的骑车时间降序排列,即让骑车时间长的选手先游;

假设存在某排列次序(a1,a2,a3,....an),使得比赛最早结束;
不妨假设是ai最后结束的选手;

若存在有某选手aj排在ai的前面,而aj的骑车时间比 ai的骑车时间短;
那么将j+1到i之间的选手依次提前一位,aj放到原来ai的位置;

由于原来j+1到i的选手提前了一位游泳,那么这些选手的表演结束时间必定比改变次序前的表演结束时间要早;

前i个选手不管怎么变换次序,这i个选手中排在最后的选手的游泳结束时间是一样的,都是这i个选手的游泳结束的总和;
也就是说改变次序后的aj跟改变次序前的ai的游泳结束时间是一样的,但aj比ai自行车快,
那么改变次序后的aj比改变次序前的ai的表演结束时间要早,

其他人由于次序没任何变化,他们的表演时间也无任何变化;

所以改变次序后的比赛结束时间不比改变次序前的比赛结束时间晚;

证毕!




回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-22 09:01
社区公告
暂无公告