[CF2029E] Common Generator 题解

· · 题解

我很喜欢这一场的 E 和 F,有一种独特的 CNOI 味道。

也就是,如果你按部就班一步一步进行推导,写出这一类题目不会太难。

解题思路

根据定义,我们可以得到一个基础结论:若 p 能被表示,则所有满足 \operatorname{gcd}(p,q)\ne 1q\gt pq 都能被表示。

观察样例可以得到若干结论,我们尝试对其一一进行证明。

引理 1:

若原数列中存在质数,且其不是唯一最小的一个数,则无解。

若原数列中存在质数,则你必须选择这个质数,否则无解。

证明 1:

考虑到你选取的数一定是你能生成的数中最小的一个,故你不可能选取比 \min\limits_{1\leq i \leq n} a_i 大的数。

根据基础结论,你必须选择某个质数,才能构造该质数,故若存在大于等于两个质数,则无解,否则你必须选择该质数,根据上面的小结论,如果这个质数不是最小值,则无解。

综上所述,引理得证。

问题转化为你选取了一个固定的数,对每个数你需要判断该数能否被生成。

考虑你选取了质数 p 之后,下一个能生成的数必定是 2p,并且不难发现,小于 2p 的数一定不能被生成,大于等于 2p 的偶合数一定可以被生成。

接下来考虑大于 2p 的奇合数能否被生成。

引理 2:

l_x 表示 x 的最小质因子,一个奇合数 k 能被生成,当且仅当 k-l_k\geq 2p

证明 2:

先考虑充分性:若 k-l_k\geq 2p 成立,那么一条成立的生成路径是 p\rightarrow 2p \rightarrow k-l_k \rightarrow k

再考虑必要性:考虑该引理必要性的等价命题:若 k-l_k\lt 2p,则奇合数 k 不能被生成。

考虑到生成 k 必须先生成一个数 t 满足:t\lt k\operatorname{gcd}(t,k)\ne 1

尝试证明与之相关的两个小引理:

引理 2.1:

对于任意奇合数 d,均有:任意能通过一次操作生成 d 的偶数 t 都满足 t\leq d-l_d

证明 2.1:

考虑反证法:假设 t\gt d-l_d 且能通过一次操作生成 d 的偶数 t 存在,则有 \operatorname{gcd}(t,d)=\operatorname{gcd}(d-t,d)\ne 1

#### 引理 2.2: 对于任意奇合数 $d$,均有:任意能通过一次操作生成 $d$ 的奇数 $t$ 都能通过一次操作生成一个偶数 $k$ 满足 $k$ 能通过一次操作生成 $d$。 #### 证明 2.2: $\operatorname{gcd}(d,t)$ 为奇数,故 $t+\operatorname{gcd}(d,t)$ 是一个偶数,且由于 $\operatorname{gcd}(d,t)$ 是一个奇数,$d-t$ 是一个偶数,$\operatorname{gcd}(d,t)$ 是 $d-t$ 的一个因子,故 $\frac {d-t} {\operatorname{gcd}(d,t)}\geq 2$ 为偶数,由此可得 $t+\operatorname{gcd}(d,t)\lt d$ 为偶数。 由于 ${\operatorname{gcd}(t+\operatorname{gcd}(d,t),d)}=\operatorname{gcd}(d,t)\ne 1$ 且 $t+\operatorname{gcd}(d,t)\leq d$,取 $k=t+\operatorname{gcd}(d,t)$ 一定符合条件,引理得证。 --- 一个根据定义可证的命题是:若所有能一步生成 $d$ 的 $t$ 均满足 $t\lt 2p$,则奇合数 $d$ 不能被生成。 根据这两个引理,又可以得知:所有能一步生成 $d$ 的 $t$ 都能在若干步内生成 $d-l_d$,故上面的命题等价于:若 $d-l_d\lt 2p$,则奇合数 $d$ 不能被生成。 由此,必要性得证。 此时充分性以及必要性均得证,原命题得证。 --- 这两个命题得证后,就可以对于每一个 $a_i$ 判断其是否能被生成,具体的:若 $a_i\mid 2$ 且 $a_i\geq 2p$ 成立或 $a_i\nmid 2$ 且 $a_i-l_{a_i}\geq 2p$ 成立,则 $a_i$ 可以被生成。 由此我们考虑完了质数个数 $\geq 1$ 的情况,考虑全为合数的情况。 --- ### 引理 3: 若 $a$ 全为合数,则 $2$ 是一个解。 ### 证明 3: 对于任意合数 $x$,若 $x\mid 2$,则根据引理 2.1 可以得知:若 $x\geq 4$ 则 $x$ 可被表示,而最小的偶合数即为 $4$,故若 $x\mid 2$ 则 $x$ 可被表示。 若 $x\nmid 2$,则根据引理 2.2 可以得知:若 $x-l_x\geq 4$ 则 $x$ 可被表示。 一个结论是:若 $x\mid t$ 且 $t\ne x$,则 $t\leq \frac x 2$,则有 $x-l_x\geq \frac x 2$,故若 $\frac x 2\geq 4$ 则 $x$ 可被表示。 而最小的奇合数即为 $9$,任意大于等于 $9$ 的奇合数均满足 $\frac x 2\geq 4$,故若 $x\nmid 2$ 则 $x$ 可被表示。 综上所述,$2$ 能表示所有合数。 --- 至此所有情况都能被判断,结束。