#P13659. [CERC 2020] Storage Problems
[CERC 2020] Storage Problems
Description
黑帮分子成功抢劫了城市中最著名的拍卖行。现在他们安全地藏身在他们的据点,并将偷来的物品存放在那里。幸运的是,你设法在他们的据点里安放了窃听器。你还拥有每个黑帮分子的个人档案,其中包含他们的声音录音。你将仔细监听接下来发生的事情,希望这能帮助你调查这起抢劫案。
每个黑帮分子恰好偷了一个物品,第 个黑帮分子偷了第 个物品。现在每个黑帮分子都试图把自己的物品放入公共储藏室,储藏室最多能承受总重量 。储藏室是一个小房间,黑帮分子们依次存放他们的物品。
当某个黑帮分子试图将物品放入储藏室,但发现放不下时(即储藏室内物品的总重量加上他的新物品会超过 ),他会生气并把储藏室里的所有物品都扔出去。在此过程中,他会告诉其他人:“ items are going to trash!”( 个物品要被扔掉了!),其中 是他试图存放物品时储藏室中的物品数量。此时会发生争吵,之后不会再有物品被存放。
由于你在黑帮分子的储藏室里安放了窃听器,你会听到黑帮分子扔出多少物品。此外,利用你的个人档案,你可以分辨出每个黑帮分子的声音。
因此,如果你能提前知道,对于所有可能的 和 ,在第 个黑帮分子扔出所有 个物品时,储藏室中可能存在多少种不同的物品子集,这将极大地帮助你的调查。由于子集的数量可能很大,请将结果对 取模后输出。
Input Format
输入包含两行。
第一行包含两个整数 和 (,),分别表示黑帮分子的数量和储藏室能承受的最大总重量。
第二行包含 个整数 ,其中 ,表示第 个黑帮分子偷的物品的重量。
Output Format
输出共 行,每行恰好包含 个整数。第 行的第 个值表示:恰好包含 个物品的子集,这些物品的总重量不超过 ,但无法再加入第 个黑帮分子的物品(即加上 后会超过 )的子集数量。每个数对 取模。
3 3
2 2 1
1 1
1 1
0 0
5 5
1 2 3 4 5
1 1 0 0
2 2 0 0
2 2 0 0
3 3 0 0
4 4 0 0
Hint
由 ChatGPT 4.1 翻译
京公网安备 11011102002149号