黑暗打击

首先这道题跟分型城市那道题很像,不难想到分治,设出方程即可

比如设\(h[i][0]\)表示\(i\)阶图案,重力方向是从上到下的总灌水方块,\(h[i][1]\)表示重力方向从左到右,\(h[i][2]\)表示重力方向从左到右而且是在图案最下面过去的

于是有\(h[i][0]=2(h[i-1][0]+h[i-1][1]+h[i-1][2])+3\cdot 2^{i-1}-2\)\(h[i][1]=h[i-1][0]+h[i-1][1]\)\(h[i][2]=h[i-1][1]+2h[i-1][2]+2^{i-1}-1\)

主要是讨论一下我的代码

首先是一个trick,就是读入优化加取模

看我的代码的矩阵里面是有负数的,这就会导致在递推的过程中,某些项可能会是负数(因为\((a-b)%p=(a%p-b%p+p)%p\),由于我们的代码没有写+p这一项,所以会有以上结果),这就会导致可能最后的答案也是负数,那么就要把答案加上p在取模

还要注意两个地方模数不同,对\(n\)的模数是\(p-1\),矩阵运算中的模数是\(p\)

至于什么样的矩阵可以使用扩展欧拉定理,还有待讨论(看这篇讨论好像是可对角化时总可用)

posted @ 2023-10-02 21:56  最爱丁珰  阅读(4)  评论(0编辑  收藏  举报