CF1183F Topforces Strikes Back
我们考虑排序后去重的 \(a_1>a_2>\cdots >a_n\)。一个数那么就是 \(a_1\)。两个数那么答案一定是 \(a_1\) 加上第一个不是 \(a_1\) 因子的数。如果最大值是一个数那么我们找最大的不是它因子的数肯定没错。我们考虑如果最大值不是 \(a_1\),那么如果找到一对新的数 \(a_i>a_j\),如果 \(a_i\) 不是 \(a_1\) 的因子,那么 \(a_1+a_i>a_i+a_j\)。如果 \(a_i\) 是 \(a_1\) 的因子,那么最大 \(a_i=\frac{a_1}{2}\),则 \(a_j<a_i\leq \frac{a_1}{2}\),那么 \(a_i+a_j<a_1\)。故 \(a_1\) 一定是两个数的最大值。
我们考虑有三个数的情况。类似的,思考 \(a_1\) 是不是一定也是最大值。显然类比上面,如果 \(a_i>a_j>a_k\) 是新的最大值,那么它们都不是 \(a_1\) 的因子,否则一定可以凑出更大的。那么这个的最大值是 \(\frac{a_1}{2}+\frac{a_1}{3}+\frac{a_1}{5}=\frac{31a_1}{30}>a_1\) 那么也是唯一可能大于 \(a_1\) 为最大值的情况。那么只需要特判一下是否存在然后跟 \(a_1\) 仍为最大值的情况取更优即可。

浙公网安备 33010602011771号