⌊n/i⌋ 分组。对每个分组内的任意两元素,我们可以把它们同时变成它们的 gcd,该操作可无限次执行。G(因为两两替换为 gcd 可逐步把所有数“收缩”到整体 gcd)。这样该分组的元素和变为 组大小 × G,且这是最小值。gcd 并乘以分组大小后累加。⌊n/i⌋ 的取值个数是 O(√n)。可用分块:令 l=1,令 q=n//l,则区间 [l, r](其中 r=n//q)的下标满足同一 ⌊n/i⌋。遍历这些区间即可。给定一个长度为n 的数组{a1,a2,...,an} 。 你可以对数组执行以下操作任意次:
【名词解释】
每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤104)代表数据组数,每组测试数据描述如下:
对于每一组测试数据,新起一行输出一个整数,表示操作后数组所有元素之和的最小值。
输入
1
6
1 2 3 7 8 9
输出
9