解题思路
本题与「同商下标的公约压缩」描述的计算任务一致。按输入格式读入数据后,沿用原题解的算法即可。
- 将下标按相同的值
⌊n/i⌋ 分组。对每个分组内的任意两元素,我们可以把它们同时变成它们的 gcd,该操作可无限次执行。
- 关键性质:在同一分组内,经过若干次操作,可以把该分组的所有元素都变成该分组所有元素的整体最大公约数
G(因为两两替换为 gcd 可逐步把所有数“收缩”到整体 gcd)。这样该分组的元素和变为 组大小 × G,且这是最小值。
- 因而答案为:对所有分组求其元素
gcd 并乘以分组大小后累加。
- 实现要点:
⌊n/i⌋ 的取值个数是 O(√n)。可用分块:令 l=1,令 q=n//l,则区间 [l, r](其中 r=n//q)的下标满足同一 ⌊n/i⌋。遍历这些区间即可。