Codeforces Round 822 (Div. 2)
C
Removing Smallest Multiples
Codeforces
1200
原题
← BD →
翻译中…

You are given a set $S$, which contains the first $n$ positive integers: $1, 2, \ldots, n$.

翻译中…

You can perform the following operation on $S$ any number of times (possibly zero):

翻译中…
  • Choose a positive integer $k$ where $1 \le k \le n$, such that there exists a multiple of $k$ in $S$. Then, delete the smallest multiple of $k$ from $S$. This operation requires a cost of $k$.
翻译中…

You are given a set $T$, which is a subset of $S$. Find the minimum possible total cost of operations such that $S$ would be transformed into $T$. We can show that such a transformation is always possible.

翻译中…

Input

翻译中…

The first line of the input contains a single integer $t$ ($1 \le t \le 10\,000$) — the number of test cases. The description of the test cases follows.

翻译中…

The first line contains a single positive integer $n$ ($1 \le n \le 10^6$).

翻译中…

The second line of each test case contains a binary string of length $n$, describing the set $T$. The $i$-th character of the string is '1' if and only if $i$ is an element of $T$, and '0' otherwise.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $10^6$.

翻译中…

Output

翻译中…

For each test case, output one non-negative integer — the minimum possible total cost of operations such that $S$ would be transformed into $T$.

翻译中…

Note

翻译中…

In the first test case, we shall not perform any operations as $S$ is already equal to $T$, which is the set $\{1, 2, 3, 4, 5, 6\}$.

翻译中…

In the second test case, initially, $S = \{1, 2, 3, 4, 5, 6, 7\}$, and $T = \{1, 2, 4, 7\}$. We shall perform the following operations:

翻译中…
  1. Choose $k=3$, then delete $3$ from $S$.
  2. Choose $k=3$, then delete $6$ from $S$.
  3. Choose $k=5$, then delete $5$ from $S$.
翻译中…

The total cost is $3+3+5 = 11$. It can be shown that this is the smallest cost possible.

翻译中…

In the third test case, initially, $S = \{1, 2, 3, 4\}$ and $T = \{\}$ (empty set). We shall perform $4$ operations of $k=1$ to delete $1$, $2$, $3$, and $4$.

翻译中…

In the fourth test case, initially, $S = \{1, 2, 3, 4\}$ and $T = \{3\}$. We shall perform two operations with $k=1$ to delete $1$ and $2$, then perform one operation with $k=2$ to delete $4$.

翻译中…

样例

Input #1
6
6
111111
7
1101001
4
0000
4
0010
8
10010101
15
110011100101100
Output #1
0
11
4
4
17
60
InputCopy OutputCopy
题目信息
题号
1734C
时间限制
2 s
内存限制
256 MB
标签
贪心
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。