给定一个长度为 n 的数组 x 和一组数组 S,使得 S 中的每个数组的长度为 n,找到 S 中的数组 G 的最大大小集,使得对于所有 1 <= i <= n,x[i] >= sum(g[i]) 对于 G 中的所有 g。
例如,如果 x = [3, 3] 且 S = {[3, 0], [1, 1], [2, 1]},则最佳集合是 {[1, 1], [2, 1]}因为总和是 [3, 2] 并且每个索引处的元素小于 x 中的对应元素。{[3, 0], [1, 1]} 不起作用,因为总和为 [4, 1],并且 4 > x[0] = 3。
是否存在运行时间是 n 和 |S| 中多项式的算法?
背景/背景:这个问题来自一个关于拼字游戏的问题。给定一个瓦片列表和一个单词,你能用瓦片组成单词吗?我将它扩展到给定一个瓷砖列表和一个单词列表,列表中可以从瓷砖形成的最大单词数是多少?