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++圣战篇 李维 (声明以下的这篇文章内容是我个人的回忆以及看法,没有任何特别的偏见,许多的事情是根据我的记忆以及从许多人的诉说中得知的,也许内容不是百分之百的正确 ...
随机推荐
- Maven系列--setting.xml 配置详解
文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...
- Maven学习-使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
- IntelliJ IDEA部署tomcat时Edit Configuration无artifact选项
IntelliJ使用 ##使用IntelliJ IDEA配置web项目时,选择Edit Configration部署Tomcat的Deployment可能会出现以下情况: 导致新手部署过程中摸不着头脑 ...
- mysql学习之二:mysql基本使用方法
安装完mysql后我们能够进行sql语句的操作: 我们能够使用下面命令连接到MySQL服务: mysql -h localhost -u root -p -h參数指定要连接的MySQLserver地址 ...
- hashcode(),equal()方法深入解析
首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重 ...
- xcode找不到真机设备 - 转
先确认证书是否正确 再确认Bundle Indentifier 是否与证书匹配 再确认Deployment Target 为:sdk从6.0改为4.3 如果xcode还无法识别iphone, Xcod ...
- C++ 转型动作 尽量避免 以及 那些意想不到的威胁
看完EffectiveC++的关于转型的章节,顿时认为周围的代码都处在悬崖边上~~ C的旧式转型:inta = 10; double b = (double)a; 对于C++的四种转型函数, cons ...
- Linux 提权常用命令集
转载:http://www.myhack58.com/Article/html/3/8/2017/83236.htm 0x00 操作系统相关 操作系统类型版本 cat /etc/issue cat / ...
- 泛泰A870(高通600 cpu 720p) 刷4.4专用中文recovery TWRP2.7.1.1版(三版通刷)
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- IIS6.0支持PHP设置
找到了一份兼职,做网站的,但是公司里面服务器是用的IIS,Win2003系统,而且以前的网站都是aspx的.老板是我们学校的一个老师,我是被学长推荐过去了. --------------------- ...