背包
时间限制:1秒 内存限制:256M
【题目描述】
有\(N(1≤N≤20)\)个物品,第 \(i\) 个物品的重量为 \(w_i\)。
小H有一些背包,它们的最承重量均为 \(C\)。
要把这 \(N\) 个物品装完,最少需要多少个背包?
请你帮助小H!!
【输入格式】
第一行包含两个用空格分隔的 \(N\) 和 \(C\)。
接下来的 \(N\) 行,每行一个整数,表示物品的重量 \(w_i(1≤wi≤C)\)。
【输出格式】
一个整数,表示背包的最小数目。
【输入输出样例1】
Input
4 10
5
6
3
7
Output
3
【样例1解释】
有四个物品,重量分别为 5、6、3和7 。背包的的最大承重量为10 。
小H可以将重量为3的物品与其他任何一个物品放在同一个背包里,但其他三个物品太重,无法组合在一起。对于上述解决方案,第1个背包装入物品1和3,第2个背包装入物品2,第3个背包装入物品4。对于此输入,还有其他几种可能的解决方案。
【数据限制】
对于 50% 的数据,有 \(1≤N≤12,1≤w_i≤C≤10^9\)。
对于 100% 的数据,有 \(1≤N≤20,1≤w_i≤C≤10^9\)。
【来源】
Mr.he