关于本题矩阵乘法做法的正确性
查看原帖
关于本题矩阵乘法做法的正确性
172370
fzj2007楼主2022/7/18 16:53

RT。

刚刚在UOJ交了一下,WA了。

拿着数据和上一个帖子叉掉的代码修改后的跑,没有一个能过。

数据:

3445645667567554 3 2 356575 250000002 545654
421777703

目前题解区中仅有 Kelin 神仙的矩阵乘法是正确的。

各个题解均对于内层的

[a0b1]m1\begin{bmatrix} a&0\\ b&1 \end{bmatrix}^{m-1}

中的 a=1a=1 情况进行了讨论,然而在原先的式子中存在

([a0b1]m1×[c0d1])n1\left( \begin{bmatrix} a&0\\ b&1 \end{bmatrix}^{m-1} \times \begin{bmatrix} c&0\\ d&1 \end{bmatrix} \right)^{n-1}

其外侧依然有 n1n-1 次幂,若不特判内层的左上角位置为 11 将导致答案错误。

故正确的做法应该为:

先特判 a=1a=1,将 mm 对一个正确的模数(a=1a=1(109+7)(10^9+7),否则为 (109+6)(10^9+6))取模,然后计算出 n1n-1 次幂内层的部分,特判左上角是否为 11,采取和上面相同的操作维护,最后算出答案。

2022/7/18 16:53
加载中...