首页 > 编程语言 >C. 小红打怪 (python解)-牛客

C. 小红打怪 (python解)-牛客

时间:2024-11-10 18:08:09浏览次数:1  
标签:牛客 python hp 小红 打怪 队友 怪物 mx 技能

C. 小红打怪 (python解)-牛客

原题链接:

C. 小红打怪

问题分析:

  • 小红的全体打击技能对所有怪物造成1点伤害。
  • 队友1的单体打击技能可以对任意单个怪物造成1点伤害。
  • 队友2的范围攻击技能可以对相邻的两只怪物分别造成1点伤害(可对已死亡的怪物使用)。

思路:

  • 设定一个函数 check(mx) 用来验证在 mx 次攻击下,是否可以击杀所有怪物。
  • 首先使用小红的技能,在每个回合中每个怪物的生命值减少 mx
  • 使用队友的技能来补充对生命值仍然大于零的怪物的攻击。
  • 我们可以使用二分法来寻找能够击杀所有怪物的最小回合数。即在 010^14 之间进行查找。
  • 通过 check(mx) 函数判断当前回合数是否足够。
  • 直接计算每个技能的应用结果,避免不必要的数组复制,提高效率。

代码:

def main():  
    n = int(input())  
    a = list(map(int, input().split()))  
    def check(mx):  
        k1, k2 = mx, mx   # 小红和队友2的技能可用次数  
        hp = a.copy()  # 剩余血量  
        # 小红攻击  
        for i in range(n):  
            hp[i] = max(0, hp[i] - mx)  
        # 队友2的范围攻击  
        for i in range(n - 1):  
            if hp[i] > 0 and hp[i + 1] > 0:  
                t = min(hp[i], hp[i + 1], k2)  
                k2 -= t  
                hp[i] -= t  
                hp[i + 1] -= t  
        # 验证剩余血量是否可以用队友1的单体攻击击杀  
        return sum(hp) <= k1 + k2  
    left, right = 0, 10 ** 14  
    while left + 1 < right:  
        mid = (left + right) // 2  
        if check(mid):  
            right = mid  
        else:  
            left = mid  
    return right  
print(main())

标签:牛客,python,hp,小红,打怪,队友,怪物,mx,技能
From: https://www.cnblogs.com/666-777-eto/p/18538271

相关文章

  • Python图片链接爬虫爬取图片代码
    importrequestsurl=‘https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/05/0F/ChMkJ1erCYqIQptxAAPESMfBQZoAAUU6QB4oVwAA8Rg091.jpg’headers={‘user-agent’:‘Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/1......
  • B. Replacement (python解)-codeforces
    B.Replacement(python解)-codeforces原题链接:B.Replacement问题分析:我们有两个二进制字符串:s(长度为n)和r(长度为n-1)。根据游戏规则,我们需要在s上执行n-1次操作。在每次操作中,我们选择一个索引k,使得s[k]和s[k+1]不相同并将这两个字符替换为r[i](第i次操作中r的......
  • 【最新原创毕设】基于移动端的助农电商系统+08655(免费领源码)可做计算机毕业设计JAVA、
    基于移动端的助农电商系统的设计与实现摘要近年来,电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升......
  • (2024最新毕设合集)基于SpringBoot的梓锦社区疫苗接种服务系统+42529|可做计算机毕业设
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 梓锦社区疫苗接种服务系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • Python 入门-2
    1.函数输出函数:print 1.*values:表示可以一次性输出多个对象,输出多个对象时,需要用,隔开(英文逗号) 输出多个内容逗号隔开,英文符号 print('哈哈哈','嘻嘻嘻','嘿嘿嘿')2.sep:用来间隔多个对象,默认值是一个空格,可随意更换 print('哈哈哈','嘻嘻嘻','嘿嘿嘿',sep=',') sep......
  • Python中输入和输出的详细解读
    文章目录一、输入1.input()函数2.eval()函数3.多个变量的输入(1)split()函数(2)map()函数二、输出1.print()函数2.字符串格式化format()方法3.字符串格式化占位符%一、输入1.input()函数input()可以读取用户键盘输入的值,并以字符串的形式赋值给我们随意定义的变量中......
  • Python实现SSA智能麻雀搜索算法优化BP神经网络回归模型(优化权重和阈值)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着人工智能技术的发展,机器学习算法在各个领域的应用越来越广泛。其中,神经网络作为一类重要的机器学习方法,在模式识别、图像处理、自然语言处......
  • Python爬虫学习笔记
    目录基础篇:HTTP:HTTP请求:请求行:请求头:请求体:HTTP响应:状态行:响应头:响应体:Requests库:GET请求:POST请求:HTML:HTML网页结构:HTML标签:网页解析:RegularExpression:元字符:量词:正则表达式:Re解析:实战案例:BeautifulSoup:安装:成员属性/函数:实战案例:Xpath:XML:语法:进阶篇:Cookie处理:防盗链:代理(很刑):飞......
  • Python中的数据结构:collections库详解
    Python中的数据结构:collections库详解在日常Python开发中,我们经常需要处理各种数据结构。Python标准库自带的collections模块,为我们提供了一系列高效且灵活的容器数据类型,比基础数据结构(如list,dict,set,tuple)功能更丰富,应用场景更广泛。本文将详解collections......
  • 【python】路径与文件管理:pathlib库的现代用法
    【Python】路径与文件管理:pathlib库的现代用法在日常的Python开发中,文件和路径管理是一个常见的任务。无论是读取文件,创建目录,还是获取文件属性,都涉及到路径操作。在Python的早期版本中,我们使用os和os.path模块来处理路径,但这些方法往往显得冗长且不够直观。为了......