NC13586. 小M和天平
描述
输入描述
多组数据,第一行一个数N,表示石子个数。(1<=N<=100) 接下来第二行N个数,表示石子的重量。(1<=Wi<=100) 接下来第三行一个数M,表示询问个数。(1<=M<=1000) 接下来M行每行一个数k(1<=k<=1e9),表示一个询问。
输出描述
对于每组数据,输出"YES"或者"NO"
示例1
输入:
2 1 4 3 2 4 5
输出:
NO YES YES
C++ 解法, 执行用时: 1721ms, 内存消耗: 7592K, 提交时间: 2021-08-19 19:51:23
#include<bits/stdc++.h> using namespace std; const int N = 1e4; bitset<N+N+10> b; int main(){ int n; while(cin >> n){ b.reset();b[N]=1; for(int i=1;i<=n;i++){ int a;cin >> a; b|=(b<<a)|(b>>a); } int m;cin >> m; while(m--){ int a;cin >> a; if(a<=10000&&b[N+a]) cout<<"YES\n"; else cout<<"NO\n"; } } return 0; }