题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=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
解题思路:这是一道排列问题,就是将若干种类的糖果按要求排列,相同种类的糖果不能相邻。这时考虑插空法。先考虑数量最多的那一种糖果(假设这种糖果有n个)先间隔排好,留出n-1个空格。剩下的糖果总数大于等于n-1,就可以使得数量最多的那一种糖果不会相邻,再将剩下的糖果按种类依次插入之前已经排好糖果的空隙中,则可以满足题目的要求,输出yes。如果剩下的糖果总数小于n-1,数量最多的那一种糖果一定会出现相邻的状况,因此输出no。因此,设数量最多的那一种糖果的数量为N,所有糖果总数为A,如果N-1<=A-N,即2N-1<=A,输出yes,否则输出no。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 int main()
 5 {
 6     int T,N,m,maxnum;//插空法:用一种数目最多的进行排列,让剩下的数目依次插空
 7     LL sum;//规律:如果剩下的数目大于等于有maxsum-1这么多空,则yes,否则No
 8     cin>>T;
 9     while(T--){
10         cin>>N;
11         maxnum=sum=0;
12         while(N--){
13             cin>>m;
14             sum+=m;
15             maxnum=max(maxnum,m);//找出最大的数
16         }
17         if(sum-maxnum>=maxnum-1)cout<<"Yes"<<endl;
18         else cout<<"No"<<endl;
19     }
20     return 0;
21 }

转载于:https://www.cnblogs.com/acgoto/p/8466379.html

题解报告:hdu1205吃糖果(插空法)相关推荐

  1. HDU1205 吃糖果【水题】

    吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  2. hdu吃糖果解题报告

    题目:吃糖果 中文题目: HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样:可是Gar ...

  3. 吃糖果(HDU-1205)

    Problem Description HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这 ...

  4. 【题解报告】ZJNU综合训练(2021.1.26)

    [题解报告]ZJNU综合训练(2021.1.26) B C D F H I J M 综合训练 ZJNU综合训练(2021.1.26) B:DP+搜索 | CF 1057C C:组合数学+dp | CF ...

  5. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  6. 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果

    [题目链接] OpenJudge NOI 2.6 1944:吃糖果 注:ybt 1193:吃糖果 页面打不开,可以在OpenJudge做该题. [题目考点] 1. 递推/递归 2. 搜索 [解题思路] ...

  7. 信息学奥赛一本通(1193:吃糖果)

    1193:吃糖果 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 3415     通过数: 2719 [题目描述] 名名的妈妈从外地出差回来,带了一盒好吃又精美的 ...

  8. 吃糖果hdu2502

    HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样:可是Gardon不知道是否存在一种吃 ...

  9. Bailian2942 吃糖果【递推+打表】

    2942:吃糖果 总时间限制: 1000ms 内存限制: 65536kB 描述 名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0).妈 ...

最新文章

  1. 奇瑞s61鸿蒙,数码提前曝光,奇瑞新能源 S61 将搭载华为鸿蒙车机系统
  2. RISC-V会被卡吗?那么你觉得C语言会不会被卡? | 包云岗
  3. Acwing第 26 场周赛【完结】
  4. 被遮挡的绝对定位 z-index
  5. Scrum Master们,难道每天都在摸鱼?
  6. PCL之点云配准--ICP
  7. [Linux程序设计][调试][splint]
  8. java给出汉字“你”“我”“他”在Unicode表中的位置
  9. arcgis 经纬度转大地坐标_MapGIS实现大地坐标到经纬度(地理坐标)的换算
  10. EXCEL密码清除——巧用RAR
  11. SQL注入-显错注入
  12. 三类最常用的数据分析工具,你用过哪一类?
  13. 百数智慧社区细分领域合作案例展示
  14. 【正则化;岭回归、lasso回归】(转载)
  15. 适合普通大众、非科班的路线
  16. 数据库之数据库和表的创建
  17. SEPM执行LiveUpdate 失败,错误“磁盘空间不足...”
  18. ThinkPHP缓存文件写入失败!:./Runtime/Cache/..
  19. c语言课题设计题目猜数字游戏,C语言课题设计报告(猜数字游戏)文档.doc
  20. 运维工程师必备技能之操作系统运维(二)

热门文章

  1. 3复数与复变函数(三)
  2. pandas 字符串切片后保存_我擦~字符串转字节切片后,切片的容量竟然千奇百怪...
  3. 【Python数据分析】数据挖掘建模——分类与预测——回归分析
  4. AI从业人员需要必备这些算法和工具!
  5. 达到什么算法水平可以面试百度AI岗
  6. 交流信号叠加直流偏置_高速数字电路设计通关五部曲(二):接口信号匹配与对接...
  7. sklearn 决策树例子_Sklearn库例子——决策树分类
  8. ubuntu 禁用透明大页_禁用大内存页面
  9. java jodd_Jodd :一款优雅的 Java 工具集
  10. 计算机主机箱的拆卸步骤,一种方便拆卸的计算机主机箱的制作方法