第一点:题解中只有一篇是 BSGS,他的题解需要求逆矩阵。事实上,BSGS 是不需要显式地求逆的。这对于模意义下的乘法逆元之类求逆需要额外开销的东西更加有用。
第二点:看到一个帖子:
求助,洛谷AC,但是 Atcoder WA
顺便问一下,我根据题解一篇关于矩阵的方法写的,但是我没有用到逆元,为什么还需要特判?
其实,虽然不需要显式求逆,但是需要保证逆存在。这是为什么呢?
观察 BSGS 的推导:(t=Θ(p))
aA×t−B=b⇒aA×t=aB×b
不难发现,只有 a 有逆的时候,第二步才能反推第一步。
对于矩阵来说,就是行列式与模数互质。
不难推出,题目中的 a=0 时,矩阵不存在逆,需要特判。