BestCoder Round\# 80 (A) 시 뮬 레이 션

11762 단어
Lucky  
 Accepts: 819
 
 Submissions: 2299
 Time Limit: 2000/1000 MS (Java/Others)
 
 Memory Limit: 65536/65536 K (Java/Others)
문제 설명
\ \ \ \    Vampire喜欢玄学,尤其喜欢研究幸运数字.

\ \ \ \    对于一个数字集合S,定义关于S的幸运数字为无法用S中的数相加得到的最小的非负整数(每个数可以使用任意次).

\ \ \ \    现在给定一个数集,如果能使用其中的数相加得到任意自然数,输出”YES”,否则输出”NO”.

입력 설명
\ \ \ \    第一行一个正整数T,为数据组数.

\ \ \ \    每组数据第一行一个n,表示集合大小.

\ \ \ \    接下来n个数,表示该数集里的数.

\ \ \ \ 1\le n\le 10^5,1\le T \le 10,0\le a_i \le 10^9    1n105,1T10,0ai109.

출력 설명
\ \ \ \    每组数据回答一个”YES”或”NO”.

입력 샘플
1
1
2

출력 샘플
NO

1 과 0 이 있 는 지 판단 하기 만 하면
#include<cstdio>  
#include<cstring>  
#include<cstdlib>  
#include<cmath>  
#include<iostream>  
#include<algorithm>  
#include<vector>  
#include<map>  
#include<set>  
#include<queue>  
#include<string>  
#include<bitset>  
#include<utility>  
#include<functional>  
#include<iomanip>  
#include<sstream>  
#include<ctime>  
using namespace std;

#define N int(1e5)  
#define inf int(0x3f3f3f3f)  
#define mod int(1e9+7)  
typedef long long LL;

set<int>v;

int main()
{
#ifdef CDZSC  
    freopen("i.txt", "r", stdin);
    //freopen("o.txt","w",stdout);  
    int _time_jc = clock();
#endif  
    int n,t,x;
    scanf("%d", &t);
    while (t--)
    {
        v.clear();
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &x);
            v.insert(x);
        }
        if (v.count(1) && v.count(0))
        {
            puts("YES");
        }
        else puts("NO");
    }
    return 0;
}

좋은 웹페이지 즐겨찾기