UOJ Logo LZY122625的博客

博客

求助一题站外题

2022-06-05 15:04:23 By LZY122625

子集和(四)

题目描述

子集和问题是指,给定 $n$ 个数字 $a_1,a_2,\cdots,a_n$ ,再给定一个目标 $t$,有多少种方法,能够选出一些数字,使得它们的和等于 $t$。注意每个数字可以重复选择多次。

小爱希望计算一些带有限制的子集和问题,她想知道,如果规定不能选择 $a_i$,那么还有多少种方法,可以选出一些数字,使得它们的和等于目标 $t$?

输入格式

第一行:两个整数表示 $n$ 与 $t$。

第二行:$n$ 个整数表示 $a_1,a_2,\cdots, a_n$;输入数据保证对任意 $i\neq j$ 有 $a_i\neq a_j$。

输出格式

共 $n$ 行,每行一个数,表示有多少种方法,在禁止选择 $a_i$ 的条件下,子集和问题的答案。由于答案可能很大,输出方案数模 $1,000,000,007$ 的余数。

数据范围

对于 $30\%$ 的数据,$1\leq n\leq 20$;

对于 $60\%$ 的数据,$1\leq n\leq 300$;

对于 $100\%$ 的数据,$1\leq n\leq 5000$;

$1\leq a_i\leq 10000$;

$1\leq t\leq 10000$;

样例数据

输入:

3 16
1 5 10

输出:

0
2
4

说明:

不用1不可能
不用5的方案为 1*16, 1*6+10*1 
不用10的方案为 1*16, 1*11+5*1, 1*6+5*2, 1*1+5*3

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。