假设有一个单词列表;每个单词我的长度为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。
除了暴力之外,我完全不知道这个问题。这对我来说也不是动态编程。我感谢任何帮助。
编辑:单词不必按照它们在列表中出现的顺序排列。