OD E卷 - 实现【流浪地球】

server/2024/11/29 9:05:46/

文章目录

  • 题目
  • 解题代码

题目

在赤道上均匀部署N个转向发动机,编号为0 ~ N - 1:

  • 默认 为未启动状态,启动方式为手动启动关联启动
  • 如果在时刻1一个发动机被启动,在时刻2 与之相邻的两个发动机就会被关联启动;
  • 若准备启动某个发动机时,它已经启动,则什么都不用做;
  • 发动机0与N-1是相邻的;

输入描述:
第一行输入N E, N为发动机总数,E表示手动启动的发动机总个数;
N, E 在【1, 1000】之间,E<=N;

后续E行,每行输入 T P,分别表示手动启动的时刻,启动发动机编号;
T,P均在【0,N】之间;

输出描述:
第一行为一个数字N,表示最后被启动的发动机个数;
第二行为N个发送机的编号,从小到大排序,以空格分隔;

示例1:
输入:
8 2
0 2
0 6
输出:
2
0 4

示例2:
输入:
8 2
0 1
1 7
输出:
2
4 5

在这里插入图片描述

解题代码

python">
# 第一行输入N E
nums = [int(x) for x in input().split(" ")]
# 总发动机数
count = nums[0]
# 数组保存所有的节点,数组值,代表对应位置启动时间
engines = [-1 for i in range(count)]  # -1表示未激活# 手动启动个数
start_cnt = nums[1]
min_time = float("inf")
for i in range(start_cnt):  # 行数nums1 = [int(x) for x in input().split(" ")]# 更新对应发动机的启动时间engines[nums1[1]] = nums1[0]# 当前时刻min_time = min(min_time, nums1[0])def activate(index, time, count):# index当前已经启动的位置编号# time为当前时刻# count 为发动机总数global engines# 更新当前位置左右的节点left = index - 1if index == 0:left = count - 1right = index + 1if index == count - 1:right = 0# 激活if engines[left] == -1:engines[left] = timeif engines[right] == -1:engines[right] = timedef find(start):  # start 为起始时间 0global enginesflag = Truewhile flag:for i in range(len(engines)):if engines[i] == start:  # 从开始位置向两边激活activate(i, start + 1, len(engines))start += 1active_cnt = 0  # 已激活的数量for i in range(len(engines)):if engines[i] != -1:active_cnt += 1# 全部激活,则停止if active_cnt == len(engines):flag = False# 最后激活的时间节点max_time = engines[0]for i in range(len(engines)):if engines[i] > max_time:max_time = engines[i]count = 0result = ""for i in range(len(engines)):if max_time == engines[i]:result += str(i) + " "count += 1# 输出最后激活的总数 及编号print(count)print(result[:-1])find(min_time)

http://www.ppmy.cn/server/145867.html

相关文章

[MRCTF2020]Transform

查壳&#xff0c;拖入64位IDA LOBYTE8位就是一个字节&#xff0c;在此处无意义&#xff0c;因为我们输入的本来就是按字节输入的 设 a byte_414040,bdword_40F040,cbyte_40F0E0,输入的字符串为flag; 从题目里得到 加密代码 a[i] flag[b[i]]; a[i] ^ b[i]; c a 即c[i] a[i…

网络安全-AAA介绍与配置

前言 AAA是Authentication&#xff08;认证&#xff09;、Authorization&#xff08;授权&#xff09;和Accounting&#xff08;计费&#xff09;的简称&#xff0c;它提供了认证、授权、计费三种安全功能。AAA可以通过多种协议来实现&#xff0c;目前华为设备支持基于RADIUS&a…

Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…

【数据结构与算法】链表之美-复杂链表的复制与链表的插入排序

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 1.复杂链表的复制 题目&#xff1a;请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中…

多阶段报童问题动态规划求解,Python 实现

使用 python 编写了多阶段报童模型的动态规划算法。 使用了 python 的装饰器 dataclass &#xff0c;方便定义类尝试使用并行计算&#xff0c;没有成功&#xff0c;极易出错。动态规划中使用并行计算&#xff0c;还是挺有挑战的&#xff1b;而且并行计算不一定总是比非并行运算…

mfc110u.dll是什么意思,mfc110u.dll丢失解决方法大全详解

mfc110u.dll是Microsoft Foundation Classes (MFC)库的一个特定版本&#xff08;版本11.0&#xff09;的Unicode动态链接库文件。MFC是Microsoft为C开发者设计的一个应用程序框架&#xff0c;主要用于简化Windows应用程序的开发工作。这个框架封装了很多Windows API函数&#x…

Laravel8.5+微信小程序实现京东商城秒杀方案

一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案&#xff08;3种&#xff09; 下单减库存 优点是库存和订单的强一致性&#xff0c;商品不会卖超&#xff0c;但是可能导致恶意下单&#xff…

【技术支持】vscode不使用插件,两种方式重命名html标签对

1. 使用 VS Code 内置功能 VS Code 内置支持 HTML/XML 标签对的重命名功能。步骤如下&#xff1a; 将光标放置在标签名上&#xff08;如 <div> 或</div>&#xff09;。按下快捷键 F2&#xff08;重命名符号&#xff09;。输入新的标签名&#xff0c;按 Enter&…