hdu5246 超级赛亚ACMer
详细来说,就是百小度如今要接受一些ACMer的挑战了,这些ACMer有n个人,第i个人的战斗力是a[i]。
百小度接下来能够自主安排与这n个ACMer的PK顺序,他要想在PK赛中赢过另外一个ACMer,就必须使得自己的战斗力不小于对方(平局情况他会依照百小度字典上的规则把自己排在第一).
假设百小度的战斗力大于对方,那么百小度就会轻易获胜,得不到锻炼而且骄傲起来,他以后的战斗力将保持在这个值,再也不会发生改变。
假设百小度的战斗力等于对方,那么百小度在获胜的同一时候也会感到非常吃力,可是这会激发百小度的斗志。使得他刻苦刷题,在下场PK赛之前,战斗力最多提升k点(即能够提升0~k点随意值).
k是百小度的潜力提升上限,会被给定一个初始值。这个潜力提升上限k在后面的比赛中会下降.
每战胜一个ACMer,这个潜力上限k将降低1(由于超级赛亚人百小度也会感到累)。但k最低仅仅会降低到0,即不会出现战斗力下降的情况
。也就是第一次比赛假设激发了百小度的斗志,他能把战斗力提升0~k的任一值,假设第二次比赛继续被激发斗志,他能在第一次提升后的基础上,把战斗力再提升0 max(0,k−1),依次类推…
m是百小度的初始战斗力上限。也就是百小度第一次进行PK赛的时候。能够选择0~m的随意一个值作为他的战斗力.
如今希望你编敲代码,推断一下百小度是否战胜全部的ACMer.
第一行一个整数T,表示T组数据
对于每组数据,第一行包含三个整数n,m,k(1≤n≤104,1≤m,k≤108)
第二行包含n个正整数,表示彪形大汉的战斗力(战斗力为不超过1012的正整数)
假设百小度能打败全部的ACMer,再输出"why am I so diao?"
否则再输出"madan!"
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!Hint第一组例子解释
5个ACMer,初始战斗力选择范围是[0,11],接下来每场战斗力提升上限是3,2,1,0,0,...,0
百小度首先使得自己的初始战斗力为10。打败战斗力为10的第一个ACMer。
然后选择战斗力提升3,变成13,打败战斗力为13的第二个ACMer,
然后选择战斗力提升2,变成15,打败战斗力为15的第三个ACMer, 之后再以随意顺序打败剩下的ACMer 这题是道二分题。先按大小排序,然后每次查找第一个大于当前战斗力的值的位置j,然后把a[j-1]+k变为新的力量值(假设j是1的话就break),当k=0可是当前战斗力还是比最大值小的时候就说明不可能战胜了break; ps:从大神那里学会了假设在int main()函数中用到超过10^9的数,要在#define inf 100000000000后加上LL,即#define inf 100000000000LL#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<algorithm>
#define inf 10000000000000LL
using namespace std;
__int64 a[10006]; int main()
{
int T,m,n,i,j,k,num1=0,flag;
__int64 liqi,minx,maxx;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&k);
num1++;
maxx=0;minx=inf;
for(i=1;i<=n;i++){
scanf("%I64d",&a[i]);
if(a[i]>maxx)maxx=a[i];
if(a[i]<minx)minx=a[i];
}
printf("Case #%d:\n",num1);
if(m>=maxx){
printf("why am I so diao?\n");continue;
}
if(m<minx){
printf("madan!\n");continue;
}
sort(a+1,a+n+1);
flag=0;
liqi=m;
while(1)
{
//printf("%d\n",liqi);
if(liqi>=maxx){
flag=1;break;
}
if(n==1)break;
if(k==0)break;
j=upper_bound(a+1,a+1+n,liqi)-a;
if(j==1)break;
liqi=a[j-1]+k;k--;
for(i=j-1;i<=n-1;i++){
a[i]=a[i+1];
}
n--;
}
if(flag){
printf("why am I so diao? \n");continue;
}
else printf("madan!\n");continue;
}
}
hdu5246 超级赛亚ACMer的更多相关文章
- hdu5246超级赛亚ACMer
题意(中文题意直接粘吧) 超级赛亚ACMer Problem Description 百小度是一个ACMer,也是一个超级赛亚人,每个ACM ...
- 2015年百度之星初赛(1) --- A 超级赛亚ACMer
超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem D ...
- 2015 百度之星 1001 超级赛亚ACMer 贪心
超级赛亚ACMer Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1750 Descrip ...
- 二分查找 2015百度之星初赛1 HDOJ 5246 超级赛亚ACMer
题目传送门 /* 二分找到不大于m的最大的数,记做p,只要a[p] + k <= a[p+1]就继续 注意:特判一下当没有比m小的数的情况:) */ #include <cstdio> ...
- 【HDU-5246】超级赛亚ACMer(贪心)
之前用了个nlogn的算法超时了.仅仅能改成n的算法了 大题贪心思路就是 对每一个人的能力值从小到大进行排序,当前能力值为now,那么我们找到一个人的能力使得这个能力值 <= now.now + ...
- 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战
一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...
- UITableViewCell单元格的删除、插入、移动
UITableViewDelegate的方法 设置编辑模式中得cell的编辑样式(删除或插入) - (UITableViewCellEditingStyle)tableView:( ...
- 【CityHunter】通过Unity3D来制作游戏中AR部分的内容
嗯,最近再考虑,CityHunter中,玩家攻略藏宝图时,为了增加可玩性,应该增强在AR部分的游戏性.最近特别火的游戏<Pokemon Go>在打开摄像头以后,可以看到小精灵,实际上,如果 ...
- C_C++圣战(摘录)
我的回忆和有趣的故事 --- C/C++圣战篇 李维 (声明以下的这篇文章内容是我个人的回忆以及看法,没有任何特别的偏见,许多的事情是根据我的记忆以及从许多人的诉说中得知的,也许内容不是百分之百的正确 ...
随机推荐
- TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成
实事上,一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚. #re ...
- android 4.4删除短信
android 4.4之后非默认的短信应用已经没有办法删除短信了.像以前那样用如下方法是不会没法删除短信的(即使在xml中配置了短信的读写权限),同时也不会有报错或其他提示. public void ...
- arcgis新版本增加的功能
1.导出拓扑错误 2.应用图层的符号设置 3.创建 SQLite 数据库 4.最小包围体 5.图形缓冲 6.按属性分割
- Android 手动按power键上锁,没有锁屏提示音,无法恢复【单机必现】
測试步骤 [測试版本号]T0606 [模块版本号] NAVI锁屏:5.0.0.ck [測试步骤] 1.手动按power键上锁, [測试结果] 没有锁屏提示音,无法恢复[单机必现] [预期结果] 有提示 ...
- 算法:堆(Heap)
背景 Heap 可以用来实现优先级队列,也可以用来做堆排序,本文简单的做个介绍. Heap 规则 是一个完全二叉树,隐含的意思是:他是平衡的.使用数组进行存储也是连续的. 给定的任意节点,该节点小于等 ...
- .NET:“事务、并发、并发问题、事务隔离级别、锁”小议,重点介绍:“事务隔离级别"如何影响 “锁”?
备注 我们知道事务的重要性,我们同样知道系统会出现并发,而且,一直在准求高并发,但是多数新手(包括我自己)经常忽略并发问题(更新丢失.脏读.不可重复读.幻读),如何应对并发问题呢?和线程并发控制一样, ...
- opencv编译Python接口
cmake-gui 配置 确认这些都正确 生成了CV2.so make install cv2.__version__ '3.0.0'
- ping + 时间 日志
:top set PINGIP="192.168.1.236" echo %date% %time%>>%PINGIP%.txt ping -n 1 %PINGIP% ...
- 数据库实例: STOREBOOK > 表空间 > 编辑 表空间: USERS
ylbtech-Oracle:数据库实例: STOREBOOK > 表空间 > 编辑 表空间: USERS 表空间 > 编辑 表空间: USERS 1. 一般信息返回顶部 ...
- [转]聊聊技术选型 - Angular2 vs Vue2
转载:https://juejin.im/post/58cab85b44d9040069f38f7a "Come, and take choice of all my library, An ...