2015年百度之星初赛(1) --- A 超级赛亚ACMer
超级赛亚ACMer
2
5 11 3
15 13 10 9 8
5 11 3
8 9 10 13 16
Case #1:
why am I so diao?
Case #2:
madan!
第一组样例解释 5个ACMer,初始战斗力选择范围是[0,11],接下来每场战斗力提升上限是3,2,1,0,0,...,0 百小度首先使得自己的初始战斗力为10,打败战斗力为10的第一个ACMer, 然后选择战斗力提升3,变成13,打败战斗力为13的第二个ACMer, 然后选择战斗力提升2,变成15,打败战斗力为15的第三个ACMer, 之后再以任意顺序打败剩下的ACMer
Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5246
Mean:
略
analyse:
贪心,但是要注意策略。把所有人战力排个序,每次贪心的取能取到的最大的能激发潜力的人。
Time complexity: O(n)
Source code:
/*
* this code is made by crazyacking
* Verdict: Accepted
* Submission Date: 2015-05-30-18.59
* Time: 0MS
* Memory: 137KB
*/
#include <queue>
#include <cstdio>
#include <set>
#include <string>
#include <stack>
#include <cmath>
#include <climits>
#include <map>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
#define LL long long
#define ULL unsigned long long
using namespace std;
const int MAXN=;
LL a[MAXN];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie();
int Cas,t;
scanf("%d",&t);
for(int Cas=;Cas<=t;++Cas)
{
LL n,m,k;
scanf("%lld %lld %lld",&n,&m,&k);
for(int i=;i<n;++i) scanf("%lld",&a[i]);
printf("Case #%d:\n",Cas);
sort(a,a+n);
if(a[]>m) puts("madan!");
else if(a[n-]<=m) puts("why am I so diao?");
else
{
int sta=;
for(int i=;i<n;++i)
{
if(a[i]>m)
{
sta=i-;break;
}
}
LL now=a[sta];
LL nextPos=sta+;
while(nextPos<n)
{
if(now+k<a[nextPos])
{
puts("madan!");break;
}
else
{
if(now+k>=a[n-])
{
puts("why am I so diao?");break;
}else{
now=a[nextPos];k--;nextPos++;
}
}
}
}
}
return ;
}
/* */
更容易理解的代码:
/*
* this code is made by crazyacking
* Verdict: Accepted
* Submission Date: 2015-05-31-12.56
* Time: 0MS
* Memory: 137KB
*/
#include <queue>
#include <cstdio>
#include <set>
#include <string>
#include <stack>
#include <cmath>
#include <climits>
#include <map>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
#define LL long long
#define ULL unsigned long long
using namespace std;
const int MAXN=;
LL a[MAXN];
int main()
{
// freopen("C:\\Users\\crazyacking\\Desktop\\cin.txt","r",stdin);
// freopen("C:\\Users\\crazyacking\\Desktop\\cout.txt","w",stdout); ios_base::sync_with_stdio(false);
cin.tie();
int t;
scanf("%d",&t);
for(int Cas=;Cas<=t;++Cas)
{
int n,m,k;
scanf("%d %d %d",&n,&m,&k);
for(int i=;i<n;++i)
scanf("%lld",&a[i]);
sort(a,a+n);
printf("Case #%d:\n",Cas);
if(m>=a[n-]) puts("why am I so diao?");
else if(m<a[]) puts("madan!");
else
{
int staPos=;
for(int i=;i<n;++i)
{
if(a[i]>m)
{
staPos=i-;
break;
}
}
LL now=a[staPos];
int nextPos=staPos+;
while(nextPos<n)
{
if(now+k<a[nextPos])
{
puts("madan!");
break;
}
else
{
if(now+k>=a[n-])
{
puts("why am I so diao?");
break;
}
if(now>a[nextPos])
{
nextPos++;
continue;
}
if(now+k>=a[nextPos])
{
now=a[nextPos];
nextPos++;
k--;
}
}
}
}
}
return ;
}
/* */
2015年百度之星初赛(1) --- A 超级赛亚ACMer的更多相关文章
- 二分查找 2015百度之星初赛1 HDOJ 5246 超级赛亚ACMer
题目传送门 /* 二分找到不大于m的最大的数,记做p,只要a[p] + k <= a[p+1]就继续 注意:特判一下当没有比m小的数的情况:) */ #include <cstdio> ...
- 2015年百度之星初赛(1) --- F 矩形面积
矩形面积 Problem Description 小度熊有一个桌面,小度熊剪了很多矩形放在桌面上,小度熊想知道能把这些矩形包围起来的面积最小的矩形的面积是多少. Input 第一行一个正整数 T, ...
- 2015年百度之星初赛(1) --- D KPI
KPI Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 2015年百度之星初赛(1) --- C 序列变换
序列变换 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 2015年百度之星初赛(1) --- B 找连续数
找连续数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 2015 百度之星 1001 超级赛亚ACMer 贪心
超级赛亚ACMer Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1750 Descrip ...
- 数学 2015百度之星初赛2 HDOJ 5255 魔法因子
题目传送门 /* 数学:不会写,学习一下这种解题方式:) 思路:设符合条件的数的最高位是h,最低位是l,中间不变的部分为mid,由题意可得到下面的公式(这里对X乘上1e6用a表示,b表示1e6) (h ...
- LIS 2015百度之星初赛2 HDOJ 5256 序列变换
题目传送门 题意:中文题面 分析:LIS(非严格):首先我想到了LIS,然而总觉得有点不对:每个数先减去它的下标,防止下面的情况发生:(转载)加入序列是1,2,2,2,3,这样求上升子序列是3,也就是 ...
- Kruskal 2015百度之星初赛2 HDOJ 5253 连接的管道
题目传送门 /* 最小生成树(Kruskal):以权值为头,带入两个端点,自然的排序;感觉结构体的并查集很好看 注意:题目老头要的是两个农田的高度差,中文水平不好,题意理解成和平均值的高度差! */ ...
随机推荐
- JAVA自已设计JSON解析器
当然,有很多很好的JSON解析的JAR包,比如JSONOBJECT,GSON,甚至也有为我们测试人员而打造的JSONPATH,但我还是自已实现了一下(之前也实现过,现在属于重构). 思想是这样的,以这 ...
- zookeeper节点Watch机制实例展示
znode以某种方式发生变化时,“观察”(watch)机制可以让客户端得到通知.可以针对ZooKeeper服务的“操作”来设置观察,该服务的其他 操作可以触发观察. 实现Watcher,复写proce ...
- sqlserver 生成UUID随机码
)) ) AS BEGIN ); ,),),),),) RETURN @id END --使用如下 select dbo.[FunGetUUID32](NEWID());
- 学习OpenGL简单易懂网站
帅炸天的教程:欢迎来到OpenGL的世界
- POJ-1475-Pushing Boxes(BFS)
Description Imagine you are standing inside a two-dimensional maze composed of square cells which ma ...
- LoadRunner执行过程报错“Failed to connect to server "xxx.xxx.xxx.xxx:xx":[10060] connetion time out”
执行性能测试过程中,LR报错: Action.c(6):Error -27796: Failed to connect to server "xxx.xxx.xxx.xxx:xx" ...
- Eclipse+Selenium自动化测试脚本设计V1.0
Eclipse+Selenium自动化测试脚本设计V1.0 http://www.docin.com/p-803032251.html
- Selenium WebDriver屏幕截图(C#版)
Selenium WebDriver屏幕截图(C#版)http://www.automationqa.com/forum.php?mod=viewthread&tid=3595&fro ...
- 节日EDM系列:圣诞节如何进行EDM数据营销
消费关系升级,消费者看中的早已不是产品本身,场景消费以及消费带来的价值感体验已成为影响消费的重要因素.圣诞将至,如何才能将圣诞节EDM数据营销的效果发挥到极致? ① 节日元素创意融合,高辨识度加深品 ...
- 解决linux crontab PHP fgetcsv 读取中文数据为空问题
公司一台服务器每天定时拉取媒体报告数据,发现每次获取的中文数据为空,发现下载下来的csv文件中文是正常的,手动再次执行一次发现是正常的 现在发现linux的默认地区是 "en_US.UTF- ...