最长质量稳定段
模拟约 755 字大约 3 分钟
P4914. 最长质量稳定段
场次:2026年5月9日-开发岗 · 来源:CodeFun2000 P4914
题目描述
某工厂的质量检测系统在生产线上连续记录 件产品的重量。称重结果依次为 ,并给定一个允许的最大波动值 。
定义一段连续生产的产品区间 是一个“质量稳定段”,当且仅当对于其中的每一个 都满足 。即相邻两件产品的重量波动幅度不超过 。
请你找出所有质量稳定段中最长的一段长度。
数据范围:产品个数 不超过 ,所有测试组 的总和也不超过 。允许的最大波动值 为 到 之间的整数。每个产品重量的绝对值不超过 。
输入格式
第一行包含一个整数 ,表示测试数据组数。
接下来每组数据占两行:
第一行包含两个整数 和 ,分别表示当前组的产品数量与允许的最大重量波动值。
第二行包含 个整数 ,依次表示每个产品的重量。
输出格式
对于每组测试数据,输出一行一个整数,表示该组数据中最长质量稳定段的长度。
示例
示例 1
输入:
1
7 1
1 2 3 2 5 6 7输出:
4说明:
数组为 1 2 3 2 5 6 7,最大允许波动 。从左到右扫描:
- ,当前段长度变为
2; - ,长度变为
3; - ,长度变为
4; - ,当前段断开,重新从
5开始,长度变为1; - ,长度变为
2; - ,长度变为
3。
扫描过程中最大长度为4,对应稳定段 。
示例 2
输入:
1
4 0
5 5 5 6输出:
3说明:
要求相邻产品重量必须完全相等。数组 5 5 5 6 中:
前两个 5 差值为 ,继续延伸;
第二个和第三个 5 差值也为 ,当前段长度变为 3;
第三个 5 到 6 的差值为 ,因此从 6 重新开始一段。
最长稳定段由前三个连续的 5 组成,长度为 3。
示例 3
输入:
2
3 1000000000
-1000000000 0 1000000000
2 0
1 2输出:
3
1说明:
第一组数据:,。重量为 -1000000000、0、1000000000。相邻波动分别为 和 ,整个序列为一个稳定段,长度为 3。
第二组数据:,。重量为 1、2,差值为 ,无法组成长度超过 1 的稳定段,因此输出 1。