圆盘自动机 cell
第一行包含n,m,d,k . 第二行包含n个整数,范围[0,m-1]
一行n个整数,为所求的操作后状态。
5 3 1 1
1 2 2 1 2
2 2 2 2 1
node operator *(node ax,node bx){ node c;c.cle(); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ int x=(i+j-2)%n+1; c.v[x]=(c.v[x]+ax.v[i]*bx.v[j])%mod; } return c; } //O(n^2)
还有一个性质:循环矩阵相乘还是循环矩阵。
这样就n^2解决了
原文:https://www.cnblogs.com/liankewei/p/10587882.html