矩阵加速递推 n的范围比较小,k的范围很大,我们可以考虑从n入手。 1.首先我们知道任何矩阵*单位矩阵都不会改变. 所以对于交换操作,我们可以造出一个这样的矩阵: 除了第s、m行,其他每一行都是f[i][i]=1; 第s行:f[s][m]=1;第m行:f[m][s]=1; 这样我们就完成了交换操作。 2.对于左移操作,我们也可以造出一个这样的矩阵: 除了第n行,其他每一行都是f[i][i+1]=1; 第n行:f[n][1]=1; 3.我们的初始矩阵f[i][1]=a[i]; 因为矩阵符合结合律,所以我们可以用类似快速幂的方法加速。 然后就可以啦,时间复杂度O(\(n^3...