Mihai and Slavic were looking at a group of $n$ frogs, numbered from $1$ to $n$, all initially located at point $0$. Frog $i$ has a hop length of $a_i$.
Each second, frog $i$ hops $a_i$ units forward. Before any frogs start hopping, Slavic and Mihai can place exactly one trap in a coordinate in order to catch all frogs that will ever pass through the corresponding coordinate.
However, the children can't go far away from their home so they can only place a trap in the first $n$ points (that is, in a point with a coordinate between $1$ and $n$) and the children can't place a trap in point $0$ since they are scared of frogs.
Can you help Slavic and Mihai find out what is the maximum number of frogs they can catch using a trap?
Input
Input
The first line of the input contains a single integer $t$ ($1 \le t \le 100$) — the number of test cases. The description of test cases follows.
The first line of each test case contains a single integer $n$ ($1 \leq n \leq 2 \cdot 10^5$) — the number of frogs, which equals the distance Slavic and Mihai can travel to place a trap.
The second line of each test case contains $n$ integers $a_1, \ldots, a_n$ ($1 \leq a_i \leq 10^9$) — the lengths of the hops of the corresponding frogs.
It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.
Output
Output
For each test case output a single integer — the maximum number of frogs Slavic and Mihai can catch using a trap.
Example
input
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
output
3
3
3
5
0
4
4
Note
Note
In the first test case, the frogs will hop as follows:
- Frog 1: $0 \to 1 \to 2 \to 3 \to \mathbf{\color{red}{4}} \to \cdots$
- Frog 2: $0 \to 2 \to \mathbf{\color{red}{4}} \to 6 \to 8 \to \cdots$
- Frog 3: $0 \to 3 \to 6 \to 9 \to 12 \to \cdots$
- Frog 4: $0 \to \mathbf{\color{red}{4}} \to 8 \to 12 \to 16 \to \cdots$
- Frog 5: $0 \to 5 \to 10 \to 15 \to 20 \to \cdots$
Therefore, if Slavic and Mihai put a trap at coordinate $4$, they can catch three frogs: frogs 1, 2, and 4. It can be proven that they can't catch any more frogs.
In the second test case, Slavic and Mihai can put a trap at coordinate $2$ and catch all three frogs instantly.
AC
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 200010;
int n, m, c, k, a, b;
int s[N], f[N];
void solve()
{
cin>>n;
for(int i=0; i<=n; i++) f[i]=0;
for(int i=1; i<100; i++) s[i]=0;
for(int i=0; i<n; i++)
{
int x; cin>>x;
if(x<100) s[x]++;
else
for(int j=1; j*x<=n; j++)
f[j*x]++;
}
int ans=0;
for(int i=1; i<=n; i++)
{
int res=f[i];
for(int k=1; k<100; k++)
{
if(i%k==0) res+=s[k];
}
ans=max(ans, res);
}
cout<<ans<<endl;
}
int main()
{
int t; cin>>t;
while(t--) solve();
return 0;
}
标签:10,Slavic,frogs,题解,cf,trap,test,Mihai
From: https://www.cnblogs.com/qing9611/p/17575005.html