HDU 5835 Danganronpa(贪心)
来源:互联网 发布:拍婚纱照 知乎 编辑:程序博客网 时间:2024/05/21 19:37
Description
n种礼物,每种礼物ai个,要求将礼物送给尽可能多的人,每个人需要一份神秘礼物和一份普通礼物,要求相邻两人的普通礼物不相同
Input
第一行一整数T表示用例组数,每组用例首先输入一整数表示礼物种类数,之后n个整数ai表示每种礼物的数量(T<=10,1<=n<=10,1<=ai<=10^5)
Output
对于每组用例,输出能够收到礼物的最多人数
Sample Input
1
2
3 2
Sample Output
Case #1: 2
Solution
先将a序列从小到大排序,令sum=a[1]+…+a[n],若a[n]不太大,那么完全可以1 2 … n 1 2… n … 2 3 … n … 这样每次从每种礼物中拿一个从小到大给一些人作为普通礼物,在保证神秘礼物数量的情况下可以一直将礼物用完或只剩一件,这样最多可以给sum/2个人;若a[n]比较大,那么贪心的尽可能多的去使用第n种礼物,即采取n x n …n x n这作为普通礼物的发放方式,然后把剩余的第n种礼物都当做神秘礼物,这样最大可以发放给(sum-a[i])*2+1个人,故ans=min(sum/2,(sum-a[n])*2+1)
Code
#include<cstdio>#include<algorithm>using namespace std;#define maxn 11int T,n,a[maxn],sum,Case=1;int main(){ scanf("%d",&T); while(T--) { scanf("%d",&n); sum=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; } sort(a+1,a+n+1); int ans=min(sum/2,(sum-a[n])*2+1); printf("Case #%d: %d\n",Case++,ans); } return 0;}
0 0
- HDU 5835 Danganronpa(贪心)
- HDU 5835 Danganronpa (贪心)
- HDU 5835 Danganronpa(贪心)
- HDU 5835 Danganronpa(贪心)
- HDU 5835 Danganronpa (贪心)
- HDU 5835 Danganronpa【贪心】
- HDU 5835 Danganronpa 贪心
- hdu 5835 虹软杯 1004 Danganronpa (贪心)
- hdu 5835 Danganronpa(贪心,优先队列)
- HDU 5835:Danganronpa (不明)
- HDU 5835 Danganronpa
- hdu 5835 Danganronpa
- HDU 5835 Danganronpa
- HDU 5835 Danganronpa
- hdu 5835 Danganronpa
- hdu 5835 Danganronpa
- HDU 5835 Danganronpa
- HDU 5835 Danganronpa
- 数据结构上机测试2-1:单链表操作A
- 关于磁珠的用法
- 训练Faster R-CNN出现的errors
- 各类行业代码
- 正则表达式,用理解代替记忆(基于Perl)
- HDU 5835 Danganronpa(贪心)
- Python单例模式的4种实现方法
- 最新Android之支持多进程、多线程的TrayPreferences代替SharedPreferences 的总结
- Unity小知识
- Android中签名、证书、公钥密钥的概念及使用
- Android 5.0以上系统背景色白色的那些坑
- MySql集群知识与搭建--源自技术
- NetUtil工具类
- hdu 5044 Tree(树链剖分)