求思路.

赵Andy 2008-11-04 10:26:54
在论坛上看到这个题,自己想了一下,感觉自己的算法比较麻烦,想求牛人的思路看看.6_6 ^_^
题目描述
为了在紧张的上班时间让员工们轻松些,百度休息室里放置着按摩椅、 CD 、高尔夫套装和 Wii 游戏机等休闲用品。其中最受欢迎的当然是游戏机。
wii 游戏机每个手柄需要使用两节电池(这两个电池可以是不同的品牌)。工程师们在玩游戏时。如果手柄没有电,他们都是将其中没电的电池拿走,并换上一个全新的电池,有电的必须继续使用。
例如,已知三种电池的使用时间分别为 3 小时、 5 小时和 8 小时。一开始,工程师使用 3 小时和 5 小时的电池。 3 小时后,换上一个 8 小时的,再过 2 小时后,手柄再次没电时,已经没有电池可用了。但如果一开始就使用那个 8 小时电量的电池,可以玩满 8 个小时。
告诉你每个品牌电池的使用时间以及该品牌电池的个数,请计算工程师们玩游戏时间的最小值和最大值。
输入格式
输入第一行为一个正整数 n ,表示电池的种数。接下来 n 行,每行两个整数 L 和 F ,表示使用时间为 L 的电池有 F 个。
输出格式
输出仅一行,包含两个整数,分别表示工程师们的最短游戏时间和最长游戏时间(短的时间在前)。两个整数之间以空格隔开。
...全文
222 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzh9955 2008-11-09
  • 打赏
  • 举报
回复
期待中!!!
zhanshen2891 2008-11-06
  • 打赏
  • 举报
回复
没分谁愿意费口舌
跟你说这就是一道证明题,程序我在那个什么百度之星的帖子里已经发了
zhuwanglove 2008-11-06
  • 打赏
  • 举报
回复
up
赵Andy 2008-11-06
  • 打赏
  • 举报
回复
up
macfan 2008-11-05
  • 打赏
  • 举报
回复
百度之星的试题?
lzh9955 2008-11-05
  • 打赏
  • 举报
回复
up
jiahehao 2008-11-05
  • 打赏
  • 举报
回复
我的想法是,应该浪费容量最小的电池。那么,每次选择时就应该优先选用容量最大的电池。这种算法最简单。

分成两组求和,并使两组和的差最小,是理论上比较好的算法,不过算法的时间复杂度就高了。具体的做法我的想法是用类似背包算法来解决。
vk2211 2008-11-04
  • 打赏
  • 举报
回复
就是一个数列,分为2组,分别求和,使2组的差的绝对值最小
长安宁 2008-11-04
  • 打赏
  • 举报
回复
我想到的原理很简单
如果想让使用时间最长,那么就得让两个电池的位置,尽力的使用时间,平衡,如果相差也必须得在最长的L之内;
如果想让时间最短,就拿掉时间最长的那个电池,然后,其它的平衡,再加上这个,相差就会最大
aaajj 2008-11-04
  • 打赏
  • 举报
回复
数量少时可以考虑遍历
赵Andy 2008-11-04
  • 打赏
  • 举报
回复
详细解释一下吧
vk2211 2008-11-04
  • 打赏
  • 举报
回复
贪心算法吧
SearchLife 2008-11-04
  • 打赏
  • 举报
回复
up
帅得不敢出门 2008-11-04
  • 打赏
  • 举报
回复
同意vk211
把全部的电池分成两个组
计算两组和的差 差最小 用最长时间 差最大 用的时间最短
太乙 2008-11-04
  • 打赏
  • 举报
回复
upup~~

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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