想法解决以下问题

时间:2012-06-14 18:09:37

标签: algorithm

在图书馆中有N本书,其中i th 一书中的页数由b_i提供。这些书籍将在K中分发。 {1}}学生使得分配给任何学生的书籍中最大页面总数与分配给任何学生的书籍中最小页面总数之间的差异对于给定的输入是最小的。书籍按特定顺序排列,不得更改此顺序。

例如:

假设B[]包含每本书中的页数。

然后对于N=6 K=3 B={3,7,8,2,6,4},输出将为0,因为我们可以将第1册和第2册交给学生1,将第3册和第4册交给学生2和留给学生3.对于学生1 10为2,为10为3,因此差异为0

类似于B={3,6,8,2,6,4}时,最小差异为1。

2 个答案:

答案 0 :(得分:0)

这是一个贪婪的O(nklogk)算法启动你的想法。首先,将书籍从大到小排序。然后选取最大的未分配书籍并将其分配给总页数最少的孩子。继续这样做,直到分配了所有书籍。每本书的作业都要求您根据孩子的总页数对孩子进行排序。

答案 1 :(得分:0)

w = B中页面的总和,你应该计算w / n以找到有限的答案。如果w是n是整数,这意味着你有这个问题。有x个元素,它们的总和等于w / n 。这似乎是NP问题的