吃糖果
这个问题用到了抽屉原理,先找出给出的N个数中最大的那个,依次排开,则共有N+1个空,把其他的数插入到这N+1个空位中。若其他糖果数之和大于等于最大糖果数-1则满足条件。
注意:用Java写该题代码一定要用大数,楼主因为没用大数被坑了好几次!!
import java.math.BigInteger;
import java.util.Scanner;
public class p1205{//注意该题要用大数
//该题用到了鸽笼原理
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
BigInteger max =new BigInteger("0");
BigInteger sum =new BigInteger("0");
for (int i = 0; i < n; i++) {
BigInteger x= sc.nextBigInteger();
if (x.compareTo(max)!=-1) {
max =x;
}
sum=sum.add(x);
}
sum = sum.subtract(max);
if (sum.compareTo(max.subtract(new BigInteger("1")))!=-1) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
}