HDU-5835 Danganronpa(模拟水题)
2016-08-15 12:17
369 查看
Total Submission(s): 379 Accepted Submission(s): 278
[align=left]Problem Description[/align]
Chisa Yukizome works as a teacher in the school. She prepares many gifts, which consist ofn
kinds with a[i]
quantities of each kind, for her students and wants to hold a class meeting. Because of the busy work, she gives her gifts to the monitor, Chiaki Nanami. Due to the strange design of the school, the students' desks are in a row. Chiaki Nanami wants to arrange
gifts like this:
1. Each table will be prepared for a mysterious gift and an ordinary gift.
2. In order to reflect the Chisa Yukizome's generosity, the kinds of the ordinary gift on the adjacent table must be different.
3. There are no limits for the mysterious gift.
4. The gift must be placed continuously.
She wants to know how many students can get gifts in accordance with her idea at most (Suppose the number of students are infinite). As the most important people of her, you are easy to solve it, aren't you?
[align=left]Input[/align]
The first line of input contains an integer
T(T≤10)
indicating the number of test cases.
Each case contains one integer n.
The next line contains n(1≤n≤10)
numbers: a1,a2,...,an,(1≤ai≤100000).
[align=left]Output[/align]
For each test case, output one line containing “Case #x: y” (without quotes) , where x is the test case number (starting from 1) and y is the answer of Chiaki Nanami's question.
[align=left]Sample Input[/align]
1
2
3 2
[align=left]Sample Output[/align]
Case #1: 2
[align=left]比赛时被题目题意吓到,但是这道题的数据太水,sum/2都能过,呵呵哒[/align]
[align=left]本题题意:有一个老师想给学生分配礼物,要求每个学生有一个神秘礼物和一个普通礼物[/align]
[align=left]神秘礼物没有要求,但是需要相邻的学生有不同的一般礼物,问如何才能让更多的学生分配[/align]
[align=left]到礼物。[/align]
[align=left]下边是正解:[/align]
[align=left] 本题无非两种情况,但是一开始我想着先放最多的,然后穿插着来,但是100,2,2这组[/align]
[align=left]数据就过不了,后来想了想,觉得可以对最大那堆和剩下的总和相比较[/align]
[align=left](1)最大的大于剩下的总和,此时肯定是(sum-max)*2+1,不难想出[/align]
[align=left](2)最大的小于剩下的总和,这是不足的需要后面的来补,答案肯定是sum/2,[/align]
[align=left]如果想到这两种情况,那么这道题目便解决了。。(PS:贪心还是不够熟练,贪心的思想还是很神奇的!)[/align]
[align=left]代码如下:[/align]
Danganronpa
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 379 Accepted Submission(s): 278
[align=left]Problem Description[/align]
Chisa Yukizome works as a teacher in the school. She prepares many gifts, which consist ofn
kinds with a[i]
quantities of each kind, for her students and wants to hold a class meeting. Because of the busy work, she gives her gifts to the monitor, Chiaki Nanami. Due to the strange design of the school, the students' desks are in a row. Chiaki Nanami wants to arrange
gifts like this:
1. Each table will be prepared for a mysterious gift and an ordinary gift.
2. In order to reflect the Chisa Yukizome's generosity, the kinds of the ordinary gift on the adjacent table must be different.
3. There are no limits for the mysterious gift.
4. The gift must be placed continuously.
She wants to know how many students can get gifts in accordance with her idea at most (Suppose the number of students are infinite). As the most important people of her, you are easy to solve it, aren't you?
[align=left]Input[/align]
The first line of input contains an integer
T(T≤10)
indicating the number of test cases.
Each case contains one integer n.
The next line contains n(1≤n≤10)
numbers: a1,a2,...,an,(1≤ai≤100000).
[align=left]Output[/align]
For each test case, output one line containing “Case #x: y” (without quotes) , where x is the test case number (starting from 1) and y is the answer of Chiaki Nanami's question.
[align=left]Sample Input[/align]
1
2
3 2
[align=left]Sample Output[/align]
Case #1: 2
[align=left]比赛时被题目题意吓到,但是这道题的数据太水,sum/2都能过,呵呵哒[/align]
[align=left]本题题意:有一个老师想给学生分配礼物,要求每个学生有一个神秘礼物和一个普通礼物[/align]
[align=left]神秘礼物没有要求,但是需要相邻的学生有不同的一般礼物,问如何才能让更多的学生分配[/align]
[align=left]到礼物。[/align]
[align=left]下边是正解:[/align]
[align=left] 本题无非两种情况,但是一开始我想着先放最多的,然后穿插着来,但是100,2,2这组[/align]
[align=left]数据就过不了,后来想了想,觉得可以对最大那堆和剩下的总和相比较[/align]
[align=left](1)最大的大于剩下的总和,此时肯定是(sum-max)*2+1,不难想出[/align]
[align=left](2)最大的小于剩下的总和,这是不足的需要后面的来补,答案肯定是sum/2,[/align]
[align=left]如果想到这两种情况,那么这道题目便解决了。。(PS:贪心还是不够熟练,贪心的思想还是很神奇的!)[/align]
[align=left]代码如下:[/align]
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<limits.h> #include<queue> #include<math.h> #include<stack> #include<vector> #include<algorithm> using namespace std; #define maxn 100005 int a[maxn]; int main() { int T,i,sum,ans,maxs,n,cases=0; scanf("%d",&T); while(T--) { maxs=0;sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; maxs=max(maxs,a[i]); } int ans=min(sum/2,(sum-maxs)*2+1); printf("Case #%d: %d\n",++cases,ans); } }
相关文章推荐
- ANSI C的标准
- #497 Shape Factory
- Linux下捕捉信号
- 8.2 喀迈拉(no.1~no.10)
- 开关问题 POJ 3276 POJ 3279 POJ 1222
- openwrt编译命令make menuconfig显示错误“Your display is too small to run Menuconfig!”
- convert between RGB565 and RGB888
- 截取掉s从首字母起长度为begin的字符串
- 【算法】字符串问题相关
- 【01背包】HDU1881-毕业bg
- 总结:调用startActivityForResult,onActivityResult无响应的问题
- RS485 分时器 RS485输入模块 Modbus RTU协议
- 一般网站的Cookie控制方式
- OpenGL ES学习
- 简单实现护目镜功能
- Java Map按Value排序
- nginx、fastCGI、php-fpm关系梳理(转载参考)
- Android SharedPreferences
- 【开源项目】智能桌上足球
- java 获取路径