HBC261225小G的GCD,构造矩阵快速幂签到题解

一天到晚红烧的鱼 算法基础篇 51 0
题库丰富多样,涵盖各个领域,全网最全C++题库,让您在练习中不断成长!
快速幂textbf{快速幂}快速幂:快速幂就是快速算底数的 nnn 次幂,其时间复杂度为 OOO, 与朴素的 OOO 相比效率有了极大的提高,快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算,这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。

快速幂textbf{快速幂}快速幂:快速幂就是快速算底数的 nnn 次幂。其时间复杂度为 O(log2n)O(log_2n)O(log2​n), 与朴素的 O(n)O(n)O(n) 相比效率有了极大的提高。快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。 例如: 相对于一般的快速幂,矩阵快速幂仅仅是把他的底数和乘数换成了矩阵形式,而相应的乘法等运算也遵循矩阵的运算法则。对于矩阵的基本运算这里不再做赘述。 取模textbf{取模}取模:a%pa % pa%p (或 a mod pa space mod space pa mod p),表示 aaa 除以 ppp 的余数。 现在给你一个递推公式: a(n)={1,n=02,n=12×a(n−1)−a(n−2),n>1a(n) = begin{cases} 1, & n=0 \ 2, & n=1 \ 2 times a(n-1)-a(n-2) , & n>1 \ end{cases}a(n)=⎩⎪⎨⎪⎧​1,2,2×a(n−1)−a(n−2),​n=0n=1n>1​ 求该数列的第 nnn 项。由于答案可能过大,你只需要输出答案对 998244353998244353998244353 取模后的值。

HBC261225小G的GCD,构造矩阵快速幂签到题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)

标签: HBC261225小G的GCD 构造矩阵快速幂签到题解