zoukankan      html  css  js  c++  java
  • HDU 1205 吃糖果 (数学)

    题目链接

    Problem Description

    HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。

    Input

    第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0<N<=1000000),第二行是N个数,表示N种糖果的数目Mi(0<Mi<=1000000)。

    Output

    对于每组数据,输出一行,包含一个"Yes"或者"No"。

    Sample Input

    2
    3
    4 1 1
    5
    5 4 3 2 1
    

    Sample Output

    No
    Yes
    

    分析:

    利用数学中的隔板法,将所有的糖果分成两部分,糖果个数最多的那一种糖果是一部分,其余的所有的糖果色另外的一部分,这样就要求个数最多的这个糖果能被其余的所有糖果分割开,及在这些糖果之间放板,最对可以放发的个数多一个。

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int a[1000005];
    int main()
    {
        int N;
        scanf("%d",&N);
        while(N--)
        {
            memset(a,0,sizeof(a));
            int n,i;
            scanf("%d",&n);
            for(i=0; i<n; i++)
                scanf("%d",&a[i]);
            sort(a,a+n);
            int sum=0;
            for(i=0; i<n-1; i++)
                sum=sum+a[i];
            if(a[n-1]<=sum+1)
                printf("Yes
    ");
            else
                printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    Codeforces Round #251 (Div. 2) A
    topcoder SRM 623 DIV2 CatAndRat
    topcoder SRM 623 DIV2 CatchTheBeatEasy
    topcoder SRM 622 DIV2 FibonacciDiv2
    topcoder SRM 622 DIV2 BoxesDiv2
    Leetcode Linked List Cycle II
    leetcode Linked List Cycle
    Leetcode Search Insert Position
    关于vim插件
    Codeforces Round #248 (Div. 2) B. Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6764837.html
Copyright © 2011-2022 走看看