等比数列求和技巧(公式+倍增)
公式
一般情况下用这个即可,当然模数是质数也可以直接套公式。\(q\) 为公比。
\[S_n=\frac{a_1\times(1-q^n)}{1-q}=\frac{a_1-a_nq}{1-q}=\frac{a_nq-a_1}{q-1}
\]
倍增
如果模数不是质数,可以考虑倍增法解决,思路类似快速幂(递归版)。
\[\sum_{i=1}^{n}a_i= \left\{
\begin{aligned}
&\sum_{i=1}^{\lfloor{n\over 2}\rfloor}a_i\times(1+q^{\lfloor{n\over 2}\rfloor}),&n=2k\\
&\sum_{i=1}^{\lfloor{n\over 2}\rfloor}a_i\times(1+q^{\lfloor{n\over 2}\rfloor})+a_1\times p^{n-1},&n=2k+1
\end{aligned}
\right.
\]