单词翘曲多行算法

时间:2016-11-27 18:53:27

标签: algorithm

假设有一个单词列表;每个单词我的长度为w [i]。我被要求找到一种方法在一行或多行上分发这些单词,以便

a)任何一行的单词总长度不超过给定值L和

b)如果S [j]是放在第j行后的剩余空间,并且K = max(S [j]),则K必须是分配单词的所有方式中的最小值。

假设一行上的单词之间没有空格,并且w [i]< = L。

例如,如果w = {a,ab,abc,123z}且L = 5,那么我们有

a123z
ababc

其中S [j] = 0且K = 0。

如果w = {a,ab,abc,123z}且L = 4,那么我们有

aab
abc
123z

其中S [1] = 1,S [2] = 1,S [3] = 0,K = 1.

约束:单词的最大数量为4000,L <= 70。

除了暴力之外,我完全不知道这个问题。这对我来说也不是动态编程。我感谢任何帮助。

编辑:单词不必按照它们在列表中出现的顺序排列。

0 个答案:

没有答案