[蓝桥杯青少年组省赛 2024] 通关游戏的最少能量值

在 Python 中,可以通过以下步骤实现二维数组的输入,并根据数组的第一个元素进行排序:

  1. 读取输入:使用 input() 函数读取输入,并将其转换为整数。
  2. 创建二维数组:将输入的任务的启动能量值和消耗能量值存储为二维数组。
  3. 排序:使用 Python 的内置排序方法 sorted() 或 sort(),并指定排序的关键字为每个子数组的第一个元素。

以下是完整的代码实现:

python 复制代码
# 读取任务数量
n = int(input())

# 创建二维数组,存储每个任务的启动能量值和消耗能量值
tasks = []
for _ in range(n):
    x, y = map(int, input().split())  # 读取每行的两个整数
    tasks.append([x, y])  # 将启动能量值和消耗能量值作为子数组存储

# 根据任务的启动能量值(子数组的第一个元素)进行降序排序
tasks.sort(key=lambda task: task[0], reverse=True)

# 计算最小初始能量值
min_initial_energy = 0
for task in tasks:
    start_energy, consume_energy = task
    min_initial_energy = max(min_initial_energy + consume_energy, start_energy)

# 输出结果
print(min_initial_energy)

代码说明:

  1. 输入部分

    • 使用 input() 读取任务数量 n。
    • 使用循环读取每个任务的启动能量值和消耗能量值,存储到二维数组 tasks 中。
  2. 排序部分

    • 使用 sort() 方法对二维数组 tasks 进行排序。
    • 排序的关键字是子数组的第一个元素(即启动能量值),并且按照降序排序。
  3. 计算最小初始能量值

    • 初始化 min_initial_energy 为 0。
    • 遍历排序后的任务列表,对于每个任务,更新 min_initial_energy,确保当前任务的启动能量值满足要求。
  4. 输出结果

    • 输出计算得到的最小初始能量值。

示例运行:

假设输入为:

复制代码
3 
2 2 
9 5 
7 4

程序运行过程如下:

  1. 读取任务数量 n = 3。
  2. 读取任务数据,存储为二维数组 tasks = \[2, 2, 9, 5, 7, 4]。
  3. 按照启动能量值降序排序后,tasks = \[9, 5, 7, 4, 2, 2]。
  4. 计算最小初始能量值:
    • 完成任务 9, 5,需要初始能量值至少为 9,完成任务后剩余能量值为 9 - 5 = 4。
    • 完成任务 7, 4,需要初始能量值至少为 7,完成任务后剩余能量值为 7 - 4 = 3。
    • 完成任务 2, 2,需要初始能量值至少为 2,完成任务后剩余能量值为 2 - 2 = 0。
    • 因此,最小初始能量值为 12。

最终输出:

12

相关推荐
菜菜的顾清寒2 分钟前
力扣HOT100(41)动态规划-杨辉三角
算法·leetcode·动态规划
Cthy_hy7 分钟前
Python算法竞赛:集合去重+字典映射 核心用法一站式整理
数据结构·python·算法
Deepoch14 分钟前
Deepoc数学大模型:驱动发动机行业数智化转型的底层解
人工智能·算法·deepoc·数学大模型
happymaker062616 分钟前
LeetCodeHot100——盛水最多的容器
数据结构·算法·leetcode·双指针·hot100
3DVisionary17 分钟前
蓝光三维扫描:磁性轴承全尺寸精密3D检测方案
算法·3d·3d检测·蓝光三维扫描·精密检测·磁性轴承·圆度测量
过期动态22 分钟前
【LeetCode 热题 100】三数之和
java·数据结构·算法·leetcode·职场和发展·排序算法
逻辑君26 分钟前
Foresight研究报告【20260010】
人工智能·算法·机器学习
一切皆是因缘际会29 分钟前
AI高速迭代下的技术风险与理性突围
大数据·数据结构·人工智能·架构
weixin_4684668531 分钟前
大语言模型原理新手入门指南
人工智能·python·算法·语言模型·自然语言处理·transformer·注意力机制
z2005093034 分钟前
今日算法(回溯找IP,加检测)
算法·leetcode