OlveraeUNSW
返回题目列表
COMP2521

递归 · 子集和

递归 · 子集和

给定 n 个非负整数和目标 T,判断能否选出一个子集(可以为空)使其和恰好等于 T。

经典递归:对第 i 个数做“选 / 不选”两个分支——rec(i+1, sum+a[i]) 或 rec(i+1, sum);sum==T 命中,i==n 到底。这是“指数级搜索 + 剪枝”的入门。

输入:第 1 行 n T;第 2 行 n 个非负整数。
输出:YES 或 NO。

例:输入 4 6 / 1 2 3 7 → 输出 YES(1+2+3=6)。

样例

stdin
4 6
1 2 3 7
期望输出
YES
stdin
3 100
1 2 3
期望输出
NO
c-dcc
14