HDOJ 1205 吃糖果

题目传送:HDOJ 1205

解题思路:保证最大堆和次大堆间的糖果数量之差小于等于1。假设最大堆为Smax,次大堆为Ssub,总糖果树为SUM,则Smax-Ssub<=SUM-Smax-Ssub-1,即2Smax-SUM<=1。

本题代码:

#include <stdio.h>

int main()
{
    int t;
    int n,max,temp,i;
    long long sum;

    scanf("%d", &t);
    while(t--)
    {
        max=0;
        sum=0;
        scanf("%d", &n);
        for(i=0;i<n;i++)
        {
            scanf("%d", &temp);
            if(temp>max)
                max=temp;
            sum+=temp;
        }
        if(2*max-sum<=1)
            printf("Yes\n");
        else
            printf("No\n");
    }

    return 0;
}

更多解题思路可以参考:

http://blog.csdn.net/hnust_xiehonghao/article/details/8005832

posted @ 2012-12-18 17:39  任琦磊  阅读(296)  评论(0编辑  收藏  举报