bitset对dp的优化,非常典型
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4;
bitset<N + N + 100> b;
int main() {
int a, c;
while (~scanf("%d", &a)) {
b.reset();
b[N] = 1;
while (a--) {
scanf("%d", &c);
b |= (b << c) | (b >> c);
}
scanf("%d", &a);
while (a--) {
scanf("%d", &c);
if (c > 10000)
puts("NO");
else if (b[N + c])
puts("YES");
else
puts("NO");
}
}
return 0;
} 
京公网安备 11010502036488号