#CF1850F. We Were Both Children

    ID: 6860 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>暴力模拟数学数论CodeforcesCodeforces Round 886(Div4)Div4FCF1850F1300

We Were Both Children

题目描述

Mihai 和 Slavic 正在观察一群编号为 11nn 的青蛙,这些青蛙最初都位于坐标 00。第 ii 只青蛙每次跳跃的距离为 aia_i

每过一秒,第 ii 只青蛙会向前跳跃 aia_i 个单位。在青蛙开始跳跃之前,Slavic 和 Mihai 可以在某个坐标点放置一个陷阱,用来捕捉所有经过该坐标点的青蛙。

然而,孩子们不能离家太远,所以他们只能在前 nn 个点(即坐标在 11nn 之间的点)放置陷阱,并且不能在 00 点放置陷阱,因为他们害怕青蛙。

你能帮 Slavic 和 Mihai 计算一下,使用一个陷阱最多能捕捉到多少只青蛙吗?

输入格式

输入的第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n2×1051 \leq n \leq 2 \times 10^5),表示青蛙的数量,也等于 Slavic 和 Mihai 能够放置陷阱的最远距离。

每个测试用例的第二行包含 nn 个整数 a1,,ana_1, \ldots, a_n1ai1091 \leq a_i \leq 10^9),表示每只青蛙的跳跃距离。

保证所有测试用例中 nn 的总和不超过 2×1052 \times 10^5

输出格式

对于每个测试用例,输出一个整数,表示 Slavic 和 Mihai 使用一个陷阱最多能捕捉到的青蛙数量。

样例

7
5
1 2 3 4 5
3
2 2 2
6
3 1 3 4 9 10
9
1 3 2 4 2 3 7 8 5
1
10
8
7 11 6 8 12 4 4 8
10
9 11 9 12 1 7 2 5 8 10
3
3
3
5
0
4
4

样例说明

在第一个测试用例中,青蛙的跳跃如下:

  • 青蛙 1:$0 \to 1 \to 2 \to 3 \to \mathbf{\color{red}{4}} \to \cdots$
  • 青蛙 2:$0 \to 2 \to \mathbf{\color{red}{4}} \to 6 \to 8 \to \cdots$
  • 青蛙 3:0369120 \to 3 \to 6 \to 9 \to 12 \to \cdots
  • 青蛙 4:$0 \to \mathbf{\color{red}{4}} \to 8 \to 12 \to 16 \to \cdots$
  • 青蛙 5:051015200 \to 5 \to 10 \to 15 \to 20 \to \cdots

因此,如果 Slavic 和 Mihai 在坐标 44 处放置陷阱,他们可以捕捉到三只青蛙:青蛙 1、2 和 4。可以证明他们无法捕捉更多的青蛙。

在第二个测试用例中,Slavic 和 Mihai 可以在坐标 22 处放置陷阱,立即捕捉到所有三只青蛙。

由 ChatGPT 4.1 翻译

来源

Codeforces 1850F,英文题名 We Were Both Children。