#136. 可撤销完全背包

可撤销完全背包

题目描述

nn 个物品, 体积分别是 w1,w2,,wnw_1,w_2,\dots,w_n。每个物品可以使用无限次。

现在,第 ii 个物品丢失了。

  • 要使用剩下的 n1n-1 物品 恰好装满 容积为 xx 的背包,有几种方法呢?。

输入格式

第一行两个整数 n,mn,m,表示物品的数量和最大的容积。 第二行 nn 个整数 w1,w2,,wnw_1,w_2,\dots,w_n,表示每个物品的体积。

输出格式

输出一个 n×mn \times m 的矩阵,第 ii 行第 jj 列的数字代表去掉第 ii 个物品后,剩余 n1n-1 个物品凑出容量恰好为 jj 的方案。

由于方案数较多,你只需要输出方案的个位数。

3 2
1 1 2
12
12
23

提示

数据范围

  • 对于 50%50\% 的数据,1n,m2001\le n,m \le 200,且 1vim1\le v_i\le m

  • 对于 100%100\% 的数据,1n,m20001\le n,m \le 2000,且 1vim1\le v_i\le m

样例解释

如果物品 33 丢失的话,有三种方法装满容量是 22 的背包

  • 选择物品 11 和物品 22
  • 选择两个物品 11
  • 选择两个物品 22