矩阵

矩阵

设K为一个域,满足\(\forall 1 \leq i,j \leq n,a_{ij}\in K\)的数表

\[A=\begin{pmatrix} a_{11}&a_{12}&···&a_{1n}\\ a_{21}&a_{22}&···&a_{2n}\\ ·&·&&·\\ ·&·&&·\\ a_{n1}&a_{n2}&···&a_{nn}\\ \end{pmatrix}\]

称为K上的一个n元矩阵

矩阵乘法

假设\(A=(a_{ij}),B=(b_{ij}),它们的乘积C=AB\)也是一个n元矩阵\(C=(c_{ij}),满足c_{ij}=\sum_{k=1}^{n}a_{ik}\cdot b_{kj}\)

矩阵乘法的性质

1.满足结合率(AB)C=A(BC)
2.满足分配律A(B+C)=AB+AC
3.不满足交换律

矩阵快速幂

点击查看代码
matrix dot(matrix x,matrix y){
    matrix sum;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            sum.a[i][j]=0;
            for(int k=0;k<n;k++){
                (sum.a[i][j]+=x.a[i][k]*y.a[k][j]%MOD)%=MOD;
            }
        }
    }
    return sum;
}
matrix qpow(matrix x,ll y){
    matrix sum;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)sum.a[i][j]=(i==j);
    }
    while(y){
        if(y&1)sum=dot(sum,x);
        y>>=1;x=dot(x,x);
    }
    return sum;
}

矩阵快速幂优化线性递推

1.\(f(n)=a_1f(n-1)+a_2f(n-2)+···+a_kf(n-k)\)
2.\(f(n)=a_1f(n-1)+a_2f(n-2)+C\)
3.\(f(n)=a_1f(n-1)+a_2f(n-2)+c_2n^2+c_1n+c_0\)

\[\begin{pmatrix} f(n)\\ f(n-1)\\ (n+1)^2\\ n+1\\ 1\\ \end{pmatrix}=\begin{pmatrix} a_1&a_2&c_2&c_1&c_0\\ 1&0&0&0&0\\ 0&0&1&2&1\\ 0&0&0&1&1\\ 0&0&0&0&1 \end{pmatrix}* \begin{pmatrix} f(n-1)\\ f(n-2)\\ n^2\\ n\\ 1 \end{pmatrix}\]

4.\(f(n)=a_{11}f(n-1)+a_{12}g(n-1),g(n)=a_{21}f(n-1)+a_{22}g(n-1)\)

\[\begin{pmatrix} f(n)\\ g(n)\\ \end{pmatrix}=\begin{pmatrix} a_{11}&a_{12}\\ a_{21}&a_{22} \end{pmatrix}* \begin{pmatrix} f(n-1)\\ g(n-1) \end{pmatrix}\]

应用

1方格填色 题解.
2Sasha and Array 题解
3区间加区间sin和 题解
4斐波 题解
5智乃酱的双塔问题 题解

posted @ 2021-11-17 00:17  I_N_V  阅读(119)  评论(0编辑  收藏  举报