我想用bitset优化下这一题,不知道错在哪里了,请帮忙看看。代码如下:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,m,x;
bitset<100008> a,b,ans;
int main() {
cin >> n;
for(int i = 1,v;i <= n;i++) cin >> v,a[v] = 1;
b.set();
cin >> m;
for(int i = 1,v;i <= m;i++) cin >> v,b[v] = 0;
cin >> x;
ans[0] = 1;
for(int j = 0;j <= x;j++) {
if(ans[j] == 1) {
ans ^= a << j;
ans &= b;
}
if(ans[x] == 1) {
cout <<"Yes\n";
return 0;
}
}
cout <<"No\n";
return 0;
}