hdu1205-鸽巢原理

来源:互联网 发布:电动车定位软件多少钱 编辑:程序博客网 时间:2024/05/16 03:09

思路:听说这要用鸽巢原理,其实我根本不晓得这是什么偷笑,这道题很容易看出来解法。

           如果我们要把这些全部都吃完,肯定是和最大值有关系的,先来看几个例子,

           4 1 1最大值为4,最后4还会剩下2。4 2 1最大值为 4,经过相互相减后,全部为0。

           其实我们可以将这个数组分成两部分,一部分为最大值一个,另外一部分为剩下的数值,

           只要(剩下数的和-最大数>=0)就输出Yes,否则输出No。

          

#include <iostream>#include <stdio.h>#include <math.h>using namespace std;int main(){    int t,n,num;    scanf("%d",&t);    while(t--)    {        __int64 maxn=-1,sum=0;        scanf("%d",&n);        for(int i=0;i<n;i++){            scanf("%d",&num);            sum+=num;            if(num>maxn)                maxn=num;        }        //printf("%d,%d\n",maxn,sum);        if(sum-maxn+1>=maxn)            puts("Yes");        else            puts("No");    }    return 0;}


0 0