hdoj 5665 Lucky 【水】

Lucky

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 554    Accepted Submission(s): 327


Problem Description
    Chaos August likes to study the lucky numbers.

    For a set of numbers S,we set the minimum non-negative integer,which can't be gotten by adding the number in S,as the lucky number.Of course,each number can be used many times.

    Now, given a set of number S, you should answer whether S has a lucky number."NO" should be outputted only when it does have a lucky number.Otherwise,output "YES".
 

Input
    The first line is a number T,which is case number.

    In each case,the first line is a number n,which is the size of the number set.

    Next are n numbers,means the number in the number set.

    1n105,1T10,0ai109.
 

Output
    Output“YES”or “NO”to every query.
 

Sample Input
 
   
1 1 2
 

Sample Output
 
   
NO
 

Source
BestCoder Round #80
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5674  5673  5672  5671  5670 
 

Statistic |  Submit |  Discuss |  Note

代码:
//这道题的意思太难理解了!
/*
    在给定的集合s中,通过相加,不能够得到的最小非负整数为幸运数,如果不存在幸运数,输出YES;
	否则输出NO; 
技巧:如果这个集合里面没有0的话,0肯定不能通过其他的数相加得到,所以0必须有,如果没有
1的话,其他的数进行加的话1肯定不能够得到,所以1也必须有,其他的数都可以通过0和多个1相加得到,所以
只要这个集合有0和1就能组成所有的非负整数,就不存在幸运数了! 
*/ 
#include 
#include 
#include 
using namespace std;
int a[100005];
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int n;
		scanf("%d",&n);
		int flag1=0,flag2=0;
		for(int i=0;i


你可能感兴趣的:(hd,oj)