绝版图书购书方案问题(折半枚举 / Meet-in-the-Middle)
📚 绝版图书购书方案问题(折半枚举 / Meet-in-the-Middle)
一、题目描述
热爱阅读的小明在书店发现了一批绝版图书,但囊中羞涩的他必须精打细算。
这批绝版图书共有 n n n 本,价格分别为 a 1 , . . . , a n a_1, ..., a_n a1,...,an,小明的存款有 m m m 元。
小明想知道,在总花费不超过余额的前提下,有多少种不同的购书方案。
两种方案不同,当且仅当存在至少一本书在其中一个方案中被购买而在另一个方案中未被购买。不购买书也计为一种方案。
输入
第一行两个正整数 n , m n, m n,m,表示图书的个数和小明的存款。
第二行 n n n 个正整数 a 1 , . . . , a n a_1, ..., a_n a1,...,an,表示每本图书的价格。
输出
输出一行一个正整数,表示购书方案的个数。
样例输入
5 1000
100 1500 500 500 1000
样例输出
8
提示
数据规模与约定
- 对于 40% 的数据,保证 1 ≤ n ≤ 20 1 \leq n \leq 20 1≤n≤20。
- 对于另外 20% 的数据,保证 1 ≤ m ≤ 10 6 1 \leq m \leq 10^6 1≤m≤106, 1 ≤ a i ≤ 10 6 1 \leq a_i \leq 10^6 1≤ai
4854



被折叠的 条评论
为什么被折叠?



