首页 > 试题广场 >

火星探测器稳定性分析

[编程题]火星探测器稳定性分析
  • 热度指数:3150 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
“祝融号”火星探测器在火星表面执行一项精密科学探测任务。其搭载的科学仪器对工作环境的稳定性有非常严苛的要求。为了保证仪器的正常运行和数据的准确性,必须满足以下两个条件:

1. 仪器的“环境稳定性指数” S 必须维持在 [18, 24] 的区间内,即 18 \le S \le 24
2. 在任何一次连续的工作期间内,环境稳定性指数的最大波动范围(即该期间的 S_{max} - S_{min})不得超过 4,即 S_{max} - S_{min} \le 4

现在,探测器沿一条预定路线行进,并按固定时间间隔连续采集了 N 次环境稳定性指数。这些数据按采集顺序(索引从 0 开始)记录下来。

为了最大化单次有效工作时长,请你找出满足上述两个稳定条件的、持续时间最长的一个或多个时间段。请输出这些时间段的起始和结束索引。如果存在多个长度相同的最长时间段,请按照起始索引从小到大的顺序,逐行输出。


输入描述:
第一行为连续采集的次数 N,其中 N 的取值范围为 [1, 10^5]
第二行为 N 个按顺序采集的环境稳定性指数,均为整数,数值范围为 [0, 30]。数值之间以空格分隔。


输出描述:
输出持续时间最长且满足稳定条件的时间段的起始索引和结束索引,两者以空格分隔。如果存在多个这样的时间段,按起始索引升序逐行输出。
示例1

输入

20
27 2 19 16 24 9 29 21 28 10 5 27 6 4 27 11 14 1 4 27

输出

2 2
4 4
7 7

备注:
本题由牛友@Charles 整理上传
头像 Silencer76
发表于 2025-08-27 23:58:27
题目链接 火星探测器稳定性分析 题目描述 “祝融号”火星探测器为了保证仪器的正常运行和数据的准确性,必须满足以下两个条件: 仪器的“环境稳定性指数” 必须维持在 的区间内,即 。 在任何一次连续的工作期间内,环境稳定性指数的最大波动范围(即该期间的 )不得超过 ,即 。 现在,探测器采集了 展开全文
头像 沉淀ing啊啊啊
发表于 2025-08-29 15:13:30
#include <iostream> #include <queue> #include <vector> using namespace std; int main() { int n; cin >> n; vector& 展开全文
头像 雪獒铠甲1998
发表于 2025-09-01 10:03:27
#include <stdio.h> int main() { int N; int S[100000] = {0}; int get1[100000] = {0}; int get2[100000] = {0}; int get3[100000 展开全文
头像 在敲键盘的比尔很沉稳
发表于 2025-09-02 19:05:28
import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { 展开全文
头像 找工作的葡萄
发表于 2025-09-01 17:51:26
两种解法:1、按条件暴力搜索+剪枝 2、滑动窗口+双端队列维护最值的索引 1、两层循环,嘎嘎暴力,剪枝思路: (1)nums[i]范围不满足,直接开启下一轮循环; (2)从索引i开始的剩余元素数量,比当前最长稳定序列小,和整个循环说“告辞”; (3) 如果稳定字符串因为下一个值范围越界而结束,[i 展开全文
头像 LebronChen666
发表于 2025-09-04 23:28:22
import java.util.*; import java.io.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws IOE 展开全文