堆箱子(堆箱子怎么堆)

问题描述

堆箱子有N个正方体箱子(编号为1~N ),每个箱子都有一个重量Wi以及一个承重系数Si,你需要把它们全部堆叠堆箱子在一起,就像一个垂直的高塔。

箱子有可能因为承受的重量太多而被压扁,可以用风险系数来衡量被压扁的概率。每个箱子的风险系数由它上面所有箱子的总重量总重量(不包括它本身)减去它的承重系数来决定。很明显,风险系数越大,该箱子被压扁的概率就越大。

你的任务是确定箱子应该按什么顺序进行堆叠,才能使得所有箱子风险系数中的最大值尽可能小。

输入格式

第一行输入一个整数 N,表示箱子的数量。

接下来N行,每行输入两个整数Wi,Si,第j行表示第j个箱子的重量Wi以及它的称重系数Si 。

输出格式

输出一个整数,表示最大风险系数的最小可能值。

这道题很简单,用一个箱子的重量加上称重系数为标准,从小到大依次排序,然后计算每个箱子的风险系数,再用max函数计算最大风险系数的最小值。

cmp函数:

 

输出结果:

 

?完整的代码请自己“脑补”,回想一下,这道题只用了三百多个B,算是贪心算法里简单的一种了。

转载请说明出处 内容投诉内容投诉
九幽软件 » 堆箱子(堆箱子怎么堆)