#6604. C1. A Simple GCD Problem (Easy Version)
C1. A Simple GCD Problem (Easy Version)
题目名称:简单的 GCD 问题(简单版)
时间限制: 2 秒 | 内存限制: 512 MB
题目背景
这是该问题的简单版本。与困难版的区别在于:在此版本中,,且对于所有 ,满足 。
题目描述
给你两个长度为 的数组 和 。
对于数组 中的每个下标 (),你可以执行最多一次如下操作:
- 选择一个任意整数 (),满足 ,并设定 。
令操作后的数组为 。你执行操作的前提必须满足以下条件:
- 对于所有 ,满足 $\gcd(a_l, a_{l+1}, \dots, a_r) = \gcd(a'_l, a'_{l+1}, \dots, a'_r)$。
任务: 计算在保持上述条件不变的情况下,最多可以对多少个位置执行操作。
输入格式
- 第一行包含测试用例数量 ()。
- 每个测试用例的第一行包含一个整数 (),即数组长度。
- 第二行包含 个整数 ()。
- 第三行包含 个整数 (在简单版中,)。
- 保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一行,表示最大可执行的操作次数。
样例分析
| 输入 (n=7, a=[1, 2, 3, 4, 5, 6, 7]) | 输出 | 解释 |
|---|---|---|
1 2 3 4 5 6 7 |
6 |
所有子数组的 GCD 均为 1。我们可以将除一个位置外的所有数改为 1,例如变为 [1, 1, 1, 1, 1, 1, 1],总共操作 6 次。 |
| 输入 (n=3, a=[67, 67, 67]) | 输出 | 解释 |
|---|---|---|
67 67 67 |
0 |
所有数相等。若减小任何一个数,相邻位置的 都会改变,因此无法操作。 |