P1309 可撤销背包

暂无评定 传统题 GESP背包 DP 上传者
时间限制1000ms
内存限制256MiB
通过 / 提交1/1

P1309可撤销背包

暂无评定 传统题 GESP背包 DP 上传者
时间限制1000ms
内存限制256MiB
通过 / 提交1/1

题目描述

有 nn 个物品,第 ii 个物品的体积为 wiw_i。每个物品只有一个,可以选择放入背包或不放入。

现在有一个容量为 xx 的背包。我们希望用若干物品恰好装满背包(不多不少)。

但是,如果第 ii 个物品丢失了,只能用剩下的 n−1n-1 个物品来恰好装满容量为 xx 的背包。这样的装法有多少种?记这个数目对 1010 取模后的结果为答案。

请你对所有情况计算答案:

  • 对每个 ii(第 ii 个物品丢失)
  • 对每个 xx(背包容量从 11 到 mm)

将答案写成一个表格。

输入格式

第一行两个整数 n,mn,m。

第二行 nn 个整数 w1,w2,…,wnw_1,w_2,\dots,w_n,表示每个物品的体积。

输出格式

输出一个 nn 行 mm 列的表格。

第 ii 行第 xx 个数表示:第 ii 个物品丢失后,用剩下的物品恰好装满容量为 xx 的背包的装法数对 1010 取模后的个位数字。

每行输出 mm 个数字,数字之间不加空格,直接连在一起。

输入输出样例 #1

输入 #1

3 2
1 1 2

输出 #1

11
11
21

说明/提示

【数据范围】
1≤n,m≤20001\le n,m \le 2000,1≤wi≤20001\le w_i\le 2000。

所有答案均对 1010 取模,即只保留个位数字。

【样例解释】
物品体积分别是 1,1,21,1,2。样例中所有装法数都不超过 99,因此取模后不变。

  • 如果第 33 个物品丢失,剩下两个体积都是 11 的物品。
    • 背包容量为 11:可以选任意一个,有 22 种装法。
    • 背包容量为 22:两个都选,有 11 种装法。
      所以第 33 行输出 21。

第 1 个物品丢失时,剩下体积为 11 和 22 的物品:

  • 容量为 11:选体积为 11 的物品,有 11 种装法。
  • 容量为 22:选体积为 22 的物品,有 11 种装法。 所以第 1 行输出 11。

第 2 个物品丢失时,剩下体积为 11 和 22 的物品,同理输出 11。