s e q u e n c e sequence sequence 题解
这道题的解题方法是数学。
我们其实可以找规律(当然如果你学过就不用找了),发现
g
c
d
(
f
i
,
f
j
)
=
f
g
c
d
(
i
,
j
)
gcd(f_i,f_j)=f_{gcd(i,j)}
gcd(fi,fj)=fgcd(i,j),那么就可以直接预处理出任意两项的最大公约数,然后直接输出就行了,时间复杂度为
O
(
n
2
log
n
2
+
q
)
O(n^2\log_{n}^{2}+q)
O(n2logn2+q)。
还可以在循环里面求最大公约数,时间复杂度为
O
(
∑
log
min
(
u
,
v
)
2
)
O(\sum{\log_{\min(u,v)}^{2}})
O(∑logmin(u,v)2)。