zoukankan      html  css  js  c++  java
  • [ACM] hdu 1205 吃糖果(鸽巢原理)

    吃糖果

    Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
    Total Submission(s): 21695    Accepted Submission(s): 6185


    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
    Hint
    Hint
    Please use function scanf
     


     

    Author
    Gardon
     


     

    Source

    解题思路:

    考虑两种糖果,假设其中一种最大数量为n,要想这两种糖果交替吃完,则另一种糖果最少的数量为n-1.因为n个糖果排成一排,内部一共有n-1个空,分离相邻的两个相同的糖果。回到题目中,找出某种糖果的最大数量maxvalue,至少需要maxvalue-1个糖果(即除去最大数量剩下的糖果)去填充空隙。如果剩下的糖果数大于maxvalue,也是可以的,因为我们可以想成把数量较少的糖果用来“加厚”原来的空隙,即可以两个或两个以上不同的糖果去填充同一个空隙。

    代码:

    #include <iostream>
    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    int num[1000002];
    int main()
    {
        int t;cin>>t;
        int n;
        while(t--)
        {
            int maxvalue=0;
            long long sum=0;
            cin>>n;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&num[i]);
                maxvalue=max(maxvalue,num[i]);
                sum+=num[i];
            }
            if(sum-maxvalue>=maxvalue-1)//sum-maxvalue 有多少个填充物,maxvalue-1是指数量最多的那个糖果所形成的空隙
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
        }
        return 0;
    }
    


     

  • 相关阅读:
    在日本被禁止的コンプガチャ設計
    Starling常见问题解决办法
    Flixel引擎学习笔记
    SQLSERVER中修复状态为Suspect的数据库
    T4 (Text Template Transformation Toolkit)实现简单实体代码生成
    创建Linking Server in SQL SERVER 2008
    Linq to Sql 与Linq to Entities 生成的SQL Script与分页实现
    Linq to Entity 的T4 模板生成代码
    在VisualStudio2008 SP1中调试.net framework 源代码
    使用HttpModules实现Asp.net离线应用程序
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697941.html
Copyright © 2011-2022 走看看