T3:
这一题因为 nnn 最大可以达到 10610^6106,如果直接计算 114514n114514^n114514n 再取模,数值会非常大,计算会非常慢。所以我们要使用快速幂[1]进行计算。
C++代码:
PYTHON代码:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 快速幂的基本思想是利用二分的方式计算幂次,通过将指数不断减半来减少乘法次数,从而降低时间复杂度。
我们使用如下步骤进行计算:
首先设定初始值 s=1s = 1s=1,d=114514d = 114514d=114514。
其次通过二进制拆解指数 nnn,如果当前位为 1,则将 sss 乘上当前的底数 ddd 并与 998244353998244353998244353 取模;
然后每次将 ddd 平方,同时对 998244353998244353998244353 再次进行取模,使得数值不会过大;
最后将 nnn 右移一位,继续计算,直到 n=0n = 0n=0。 ↩︎