#7733. 数字拼和
数字拼和
题目描述
给定 个正整数,每个数最多只能使用一次。接下来有 次询问,每次给出一个整数 ,询问是否可以从这 个数中选出若干个,使它们的和恰好等于 。
这是一道 bitset 的经典入门应用。设 f[i] = 1 表示和为 可以被拼出来。加入一个数字 时,原来所有可以拼出的和都可以再加上 ,因此可以写成:
f |= (f << x);
输入格式
第一行两个整数 。
第二行 个正整数 。
接下来 行,每行一个整数 。
输出格式
对于每次询问,如果可以拼出和 ,输出 Yes,否则输出 No。
样例
4 5
2 3 7 10
5
9
12
1
22
Yes
Yes
Yes
No
Yes
数据范围与提示
- 对于 的数据,,,,。
- 提示:令
bitset<100001> f; f[0] = 1;,然后依次处理每个数字。