HDU5246 超级赛亚ACMer 贪心_AC_Gibson的博客-程序员秘密

技术标签: 贪心  

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5246


分析:贪心思想。我们先把每个挑战者按战斗力升序排序,然后找出离m最近的小于m的挑战者的战斗力x,赋初值cnt=x,并纪录该挑战者的下标tmp,然后从i=tmp开始遍历,对于后面的每一个挑战者,其战斗力为a[i],如果cnt+k<a[i],那么就说明百小度不能战胜它,标记flag为false跳出循环输出即可;否则,更新cnt的值为a[i],同时对于k>0时k--,直至遍历所以的挑战者,如果flag的值为true,就说明百小度可以战胜所有的挑战者。


实现代码如下:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
long long a[10010];
int main()
{
    int t,T=1,n,m,k;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&n,&m,&k);
        for(int i=0; i<n; i++)
            scanf("%lld",&a[i]);
        printf("Case #%d:\n",T++);
        sort(a,a+n);
        if(a[0]>m)
        {
            puts("madan!");
            continue;
        }
        if(a[n-1]<=m)
        {
            puts("why am I so diao?");
            continue;
        }
        long long cnt=m;
        int tmp;
        bool flag=true;
        for(int i=0;i<n;i++)
          if(a[i]>m)
          {
              cnt=a[i-1];
              tmp=i;
              break;
          }
        for(int i=tmp; i<n; i++)
        {
            if(cnt+k<a[i])
            {
                flag=false;
                break;
            }
            else
            {
                cnt=a[i];
                if(k>0) k--;
            }
        }
        if(flag) puts("why am I so diao?");
        else puts("madan!");
    }
    return 0;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AC_Gibson/article/details/46300965

智能推荐

移植zlib到hi3516cv300_qiaoliang328的博客-程序员秘密

1. 找源码,在hisdk 里面就有zlib 的源码:zlib-1.2.8.tar.gz2. 解压,然后:cd zlib-1.2.8 3. ./configure --prefix=/work/opensource/zlib/zlib-1.2.8/_install ,然后修改MakefileCROSS=arm-hisiv500-linux-CC=$(CROSS)gccL

Python+OpenCV3简单手势识别_python3 opencv手势识别_捉猫的耗子的博客-程序员秘密

文章目录安装相关库原理简述代码效果实现今天教大家一个有趣的玩法,如何利用Python+opencv3实现简单的手势识别。当然网上也有相关教程,但绝大多数给出的代码拿来之后你是不能直接用的,这对于拿来主义的同学来说简直太“禽兽”了。所以今天我也会给出所有代码,只要配置好环境就可以运行。话不多说接下来就进入正题。安装相关库这个安装库的重要性就不用我多说了,但凡是想直接用人家的代码,就要安装人家运行所需的全部库。pip install opencv-pythonpip install opencv

【资源下载】JM 的H.264/AVC编解码(附YUVPlayer和YUV文件下载)_一条余弦Cos的博客-程序员秘密

整理不易,冲冲冲……后期继续更YUVPlayer下载地址:http://www.yuvplayer.com/YUV 文件下载地址:http://trace.eas.asu.edu/yuv/index.html注意:用YUVPlayer播放时请记住下载视频对应的长和宽的数值,播放时需要自己手动填入,否则会出现播放不正确的情况。...

编辑器VSCode使用心得_weixin_33810006的博客-程序员秘密

工欲善其事必先利其器,趁手的工具会使我们开发事半功倍。市面上的编辑器我用过许多,编辑器使用经历Notepad++,(开源)这个应该是最轻量级的吧,查看代码还好,编辑代码就算了官网地址:https://notepad-plus-plus.org/Brackets,(开源)这个也不错,github-star:30k了,上次发布版本是6月...

设计模式 -- 工厂模式_工厂设计模式csdn_赵不酷的博客-程序员秘密

所有工厂模式都通过减少应用程序和具体类之间的依赖促进松耦合。工厂是很有威力的技巧,帮助我们针对抽象编程,而不要针对具体类编程。理论介绍工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂模式:提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。应用场景工厂方法模式:可以将你的客户代码从需要实例化的具...

Fortran入门教程(二)——数据类型_fortran character_Sumbrella_的博客-程序员秘密

数据类型数据类型是指在计算机中能够记录文本、数值等的数据单位。算法处理的对象是数据,而数据是以某种特定的形式(如整数、实数、字符等形式)存在的。不同的数据之间往往还存在某些联系,例如由若干个整数组成一个整数数组。1. 变量声明隐式声明(不再使用)隐式声明是传统 Fortran 语言预先定义且无须通过类型声明语句对变量类型进行定义,习惯称为I-N规则。Fortran 规定,凡以字母I、J、K、L、M、N(无论大写还是 小写)6个字母开头的变量名,如无另外说明则为整型变量。以其他字母开头的变量被默认为

随便推点

sap进阶系列(5):第一篇:财务总览之基金管理(资金预算)_ctyg7349的博客-程序员秘密

2.4; s+ v0 B. B. W1 P' ]( j基金管理(资金预算)上一章介绍的是资金管理中的资金头寸管理,流动性预测和公司总部资金平衡。本章介绍的模块是管理资金预算的。由于本模块在公共部门(如政府等)是特别重要的模块,...

从服务器下载&&OTA升级&&JSON文件解析_ota json_hejunw的博客-程序员秘密

mainActivity :package com.example.he.toby.otademo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.support.v7.app.AppCompatActivity;import android

CodeForces 963A - Alternating Sum 等比数列求和 逆元 数论_MasterAn的博客-程序员秘密

题目链接题意 求等比数列的和并对1e9+91e9+91e9+9取模。分析 S=a1(qlen−1)q−1S=a1(qlen−1)q−1S=\frac{a1(q^len -1)}{q-1},q=bk∗(inv(a))k(mod1e9+9),其中len=(n+1)/k,inv(a)为a的逆元q=bk∗(inv(a))k(mod1e9+9),其中len=(n+1)/k,inv(a)为a的逆元...

高并发详细讲解以实现_如何实现高并发_gua_niu123的博客-程序员秘密

一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。QPS:每秒响应请求数。在互

HDU - 1045 Fire Net 【DFS】_牧心.的博客-程序员秘密

DescriptionSuppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall.A blockhouse is a sm...

【企业框架源码】 SpringMVC mybatis 多数据源 代码生成器 SSM java redis shiro ehcache_weixin_34318272的博客-程序员秘密

获取【下载地址】 QQ: 313596790官网 http://www.fhadmin.org/A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表、主表、明细表、树形表,快速开发利器)+快速表单构建器freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本,处理类,service等完整模块C...