HDU 1205 吃糖果

还是有点心急了。

思路对了,发现如果有其中一种糖果是大于总数量的一半-1,那么将会无法形成隔板

1.样例:[4,1,1] 就是对应这种情况--->  |`|`| |,发现,如果当中出现一种类型,总数除去这部分剩下的部分要形成隔板才行,至少是sum-ele+1>=ele

2.因此,对于每次输入的数,找出最大的数,并确定是否大于数量的一半-1即可。

3.看了一些题解是属于抽屉原理。不太懂,学一下。

 

 1 #include <stdio.h>
 2 
 3 __int64 num;
 4 
 5 int main()
 6 {
 7     __int64 sum=0;
 8     int T,n;
 9     scanf("%d",&T);
10     while(T--)
11     {
12         int flag = 0;
13         sum=0;
14         scanf("%d",&n);
15         __int64 max = 0;
16         for(int i=0;i<n;i++) 
17         {
18             scanf("%I64d",&num);
19             sum += num;
20             if(max < num) max = num;
21         }
22         printf(sum-max+1>=max ? "Yes\n" : "No\n");
23     }
24     return 0;
25 }
View Code

 

 

 

 

posted on 2013-11-22 08:36  从此以后  阅读(225)  评论(0编辑  收藏  举报