酷代码 AI
菜单

题目描述 智能空调在室温过高时自动开启制冷,持续运行固定时间后关闭(单位:分钟)。若在制冷期间再次检测到温度过高,则重置制冷的开始时间。 已知有 n n 次温度过高事件,发生的时间分别为 t 1 t 1 ​ 、 t 2 t 2 ​ 、...、 t n t n ​ ,请计算空调执行制冷的总时间。 输入格式 共 n + 2 n+2 行, 第一行一个整数 n n,表示温度过高事件的次数; 第二行一个整数 c c,表示空调每次开启制冷后的持续时间(单位:分钟); 接下来 n n 行,每行一个整数 t i t i ​ ,表示温度过高事件的发生时间( t 1 < t 2 < . . . < t n t 1 ​ <t 2 ​ <...<t n ​ )。 输出格式 输出一个整数,表示空调运行制冷的总时间(单位:分钟)。

以下是使用 Python 实现的代码: ```python # 读取温度过高事件的次数 n = int(input()) # 读取空调每次开启制冷后的持续时间 c = int(input()) # 初始化总制冷时间和当前制冷结束时间 total_time = 0 end_time = 0 # 循环读取每次温度过高事件的发生时间 for _ in range(n): t = int(input()) # 如果当前温度过高事件发生在当前制冷结束时间之后 if t >= end_time: # 计算新的制冷时间 total_time += c # 更新当前制冷结束时间 end_time = t + c else: # 如果在制冷期间再次检测到温度过高,重置制冷开始时间 # 计算新的制冷时间,为当前制冷结束时间与新的制冷结束时间的差值 new_end_time = t + c total_time += new_end_time - end_time # 更新当前制冷结束时间 end_time = new_end_time # 输出空调运行制冷的总时间 print(total_time) ``` 代码解释: 1. 读取输入:首先读取温度过高事件的次数 `n` 和空调每次开启制冷后的持续时间 `c`。 2. 初始化变量:初始化总制冷时间 `total_time` 为 0,当前制冷结束时间 `end_time` 为 0。 3. 循环处理温度过高事件: - 读取每次温度过高事件的发生时间 `t`。 - 如果 `t` 大于等于 `end_time`,说明当前制冷已经结束,需要开启新的制冷,更新总制冷时间和当前制冷结束时间。 - 如果 `t` 小于 `end_time`,说明在制冷期间再次检测到温度过高,需要重置制冷开始时间,更新总制冷时间和当前制冷结束时间。 4. 输出结果:输出空调运行制冷的总时间。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n$ 是温度过高事件的次数。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2025-12-06 18:33:34 | AI问答 | 487点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多