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 }