codeforces 963A Alternating Sum

codeforces 963A Alternating Sum

题解

计算前 (k) 项的和,每 (k) 项的和是一个长度为 ((n+1)/k) ,公比为 ((a^{-1}b)^k) 的等比数列。
当公比为 (1) 时,不能用等比数列求和公式。
什么时候公比为 (1)
(a=b) 时,(a^{-1}b=1(mod p))
(a=p-b) 时,(a^{-1}b=(p-b)^{-1}b=-1(mod p)),如果此时 (k) 是偶数,公比就是 (1)
证明:令 (x=(p-b)^{-1}),则 (x*(p-b)=1(mod p))(x*-b=1(mod p))(x*b=-1(mod p))。得证。

原文地址:https://www.cnblogs.com/wuyuanyuan/p/8872988.html