首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一道算法题,

2012-03-26 
一道算法题,求助!!!!!!!!!!!!!Wii游戏机有两个手柄,每个手柄使用两节电池(这两个电池可以是不同的品牌),其

一道算法题,求助!!!!!!!!!!!!!
Wii游戏机有两个手柄,每个手柄使用两节电池(这两个电池可以是不同的品牌),其中至少一块电池没电时该手柄没电。

工程师们在玩游戏时,总是用最简单的方式更换电池:有手柄没电时把所有没电的电池拿走,一一换上新电池即可(有电的电池总是继续使用)。当有手柄没电但没有新电池可用时才停止玩Wii。

告诉你每个品牌电池的使用时间以及该品牌电池的个数,请计算工程师们玩游戏时间的最小值和最大值。


输入格式
输入第一行为一个正整数n,表示电池的种数。接下来n行,每行两个整数L和F,表示使用时间为L的电池有F个(电池不必成对出现,即F可以是奇数)。  

输出格式
输出仅一行,包含两个整数,分别表示工程师们的最短游戏时间和最长游戏时间(短的时间在前)。两个整数之间以空格隔开。  

输入样例   例
3
3   2
5   2
8   2


输出样例   例
5   8




[解决办法]
我只会穷举,
实际上本人以为该题是一个 集合划分的问题,也就是说 给定一个集合,
把它分成2部分A,B,s.t.

(1)A-B 的差越小---------这个是最优

(2)A-B的差越大 并且A-B不能大于A中最大元素Max{A}-----这个是最差

--------------------------
但是这个问题(我觉得,算法学的不好)至少是NPC问题(它不比 是否能把一个集合分成K个相等部分 问题简单),所以我只会穷举+分界。
上面的差应是非负数

热点排行