HDU 1205(鸽巢原理)
来源:互联网 发布:网络信贷 编辑:程序博客网 时间:2024/05/29 14:44
HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。
234 1 155 4 3 2 1
NoYes Please use function scanf
思路
显然当一个糖果数量很多时,它最容易被相邻吃到。于是找到数量最多的那种糖果,假设有n种,向其n-1个空隙中插入其他糖果
由鸽巢原理可知只要剩下糖果的总数是大于等于n-1的,那么这个任务就能完成。
因为剩下的糖果是多种的(至少1种),而且每种的数量不会超过n,所以只要能插满n-1个空隙,剩下的糖果一定可以再插进去并且满足相邻不相同。
代码示例
//#define LOCAL#include<iostream>#include<string.h>#include<cstdio>#include<math.h>using namespace std;const int maxn=1000010;typedef long long ll;int arr[maxn];int main(){ ios::sync_with_stdio(false); #ifdef LOCAL freopen("read.txt","r",stdin); #endif int T; cin>>T; int n; while(T--) { ll sum=0; int Max=0; cin>>n; for(int i=0;i<n;++i){ cin>>arr[i]; sum+=arr[i]; if(arr[i]>arr[Max]) Max=i; } if((sum-arr[Max])>=arr[Max]-1) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
阅读全文
1 0
- HDU 1205(鸽巢原理)
- hdu 1205 鸽巢原理
- [ACM] hdu 1205 吃糖果(鸽巢原理)
- HDU 1205 吃糖果(组合数学鸽巢原理)
- hdu 1205 吃糖果(鸽巢原理)
- HDU 1205 吃糖果(鸽巢原理)
- HDU——1205吃糖果(鸽巢原理)
- hdu 1205 吃糖果(鸽巢原理)
- HDU 5776 SUM (鸽巢原理 / 抽屉原理)
- hdu 5776 sum (鸽巢原理)
- HDU 1808(鸽巢原理)
- HDU 1029(鸽巢原理)
- 鸽巢原理 Poj3370&Hdu1808 + Poj2356 + Hdu 1205
- POJ 3370 && HDU 1808 Halloween treats(鸽巢原理)
- [HDU 5762] Teacher Bo (鸽巢原理)
- hdu 5762 Teacher Bo(鸽巢原理)
- hdu 1808 alloween treats (鸽巢原理)
- HDU 6046 hash(鸽巢原理+unordered_map)
- 大数据学习笔记:Linux基础复习
- jquery layui
- Ubuntu16.04 安装流程 -3 编程-计算机视觉(201705)
- shell编程入门
- 优秀开源项目之四:CrashRptProbe,查询程序奔溃的利器
- HDU 1205(鸽巢原理)
- 可爱的中国
- 突然代码片不能创建了,只能这么写了.......
- javascript模块化编程
- ASP.NET MVC – 视图
- 微信返回键的监控
- 【洛谷】P1002-过河卒
- VB.NET书籍整理,持续更新!
- 45.jump游戏第二弹