一个能装入总体积为T的背包和n件体积分别为w1,w2,…wn的物品,能否从n件物品中挑选若干件恰好装背包,即使w1+w2+…+wm=T
T
n
w1,w2,…wn
w1+w2+…+wm=T
相当于取一个向量 n = (x_1, x_2, ..., x_n),其中 x_i \in \{0, 1\},使得 \sum_{i=1}^n x_i w_i = T,求所有满足条件的 n。
(x_1, x_2, ..., x_n)
x_i \in \{0, 1\}
\sum_{i=1}^n x_i w_i = T
使用暴力 dfs 搜索,搜索每一件物品的选择情况,符合条件时输出。
dfs
总情况数为 2^n,时间复杂度为 O(2^n)。
2^n
O(2^n)