P14444 [ICPC 2025 Xi'an Practice] Great Indices

题目描述

给定一个序列 $a_1, a_2, \cdots, a_n$。对于每一个满足 $1 \leq i \leq n$ 的下标 $i$,当且仅当以下条件成立时,我们称下标 $i$ 是 **好** 的: - 至多存在一个下标 $1 \leq j \leq n$,使得 $a_j$ 不是 $a_i$ 的约数。 你的任务是找出序列中所有 **好** 的下标。 回忆一下,当且仅当存在一个整数 $k$ 使得 $n = d \times k$ 时,整数 $d$ 是整数 $n$ 的约数。

输入格式

输入包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^5$),表示测试用例的数量。对于每个测试用例: - 第一行包含一个整数 $n$($1 \leq n \leq 3 \times 10^5$),表示序列 $a$ 的长度。 - 第二行包含 $n$ 个整数 $a_1, a_2, \cdots, a_n$($1 \leq a_i \leq 10^9$),表示给定的序列。 保证所有测试用例中 $n$ 的总和不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出两行: - 第一行输出一个整数 $m$,表示 **好** 的下标的数量。 - 第二行输出 $m$ 个整数 $p_1, p_2, \cdots, p_m$(满足 $p_1 < p_2 < \cdots < p_m$),表示按 **升序** 排列的 **好** 的下标。

说明/提示

在第一个测试用例中: - 当 $i = 1$ 时,使得 $a_j$ 不是 $a_i$ 的约数的下标 $j$ 为 $2$、$3$ 和 $4$。由于此类下标数量为 $3 > 1$,因此下标 $1$ 不是 **好** 的下标。 - 当 $i = 2$ 时,存在两个下标 $j = 3$ 和 $j = 4$,使得 $a_j$ 不是 $a_i$ 的约数。 - 当 $i = 3$ 时,存在两个下标 $j = 2$ 和 $j = 4$,使得 $a_j$ 不是 $a_i$ 的约数。 - 当 $i = 4$ 时,所有的 $a_j$ 都是 $a_i$ 的约数,因此下标 $4$ 是 **好** 的。 因此,唯一的 **好** 的下标是 $i = 4$。 翻译由 ChatGPT-5 完成