美文网首页
uva11100 旅行,2007!

uva11100 旅行,2007!

作者: kinoud | 来源:发表于2019-04-17 20:34 被阅读0次

    我们有n(1~10000)个旅行背包,每个包有一个尺寸(1~1000000),小包可以装在大包里面,请你给出一种嵌套方案,尽可能地将小包放在大包里,使得最后的复合背包尽量少,在次前提下,使得嵌套层数的最大值尽量的小。

    解决:
    可以看作是给背包分成若干组,每一组不存在尺寸相同的两个背包。
    先统计一下不同尺寸的背包各有多少个,假设个数最多的一种背包有k个,不难证明,如果把k作为背包分组的组数,它是不多不少的,最少k组,最多也是k组。接着只需要按照背包尺寸从小到大的顺序把各个背包轮流、循环地放入1~k各个组中,这样的放法既是可行的,也会使得每一组的背包数量尽可能平均,从而使嵌套层数的最大值尽量小。

    相关文章

      网友评论

          本文标题:uva11100 旅行,2007!

          本文链接:https://www.haomeiwen.com/subject/bteowqtx.html