矩阵模版(新)

Posted 相儒以沫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵模版(新)相关的知识,希望对你有一定的参考价值。

#define repf(i,a,b) for(int i=(a);i<=(b);i++)

using namespace std;

typedef long long ll;

const int N = 0;
const int SIZE = 4;

int l, MOD;

struct Mat{
    ll v[SIZE][SIZE];   // value of matrix

    Mat() {
        memset(v, 0, sizeof(v));
    }

    void init(ll _v) {
        repf (i, 0, SIZE)
            v[i][i] = _v;
    }
};

Mat operator * (Mat a, Mat b) {
    Mat c;
    repf (i, 0, SIZE - 1) {
        repf (j, 0, SIZE - 1) {
            c.v[i][j] = 0;
            repf (k, 0, SIZE - 1) {
                c.v[i][j] += (a.v[i][k] * b.v[k][j]) % MOD;
                c.v[i][j] %= MOD;
            }
        }
    }
    return c;
}

Mat operator ^ (Mat a, ll k) {
    Mat c;
    c.init(1);
    while (k) {
        if (k&1) c = a * c;
        a = a * a;
        k >>= 1;
    }
    return c;
}

 

以上是关于矩阵模版(新)的主要内容,如果未能解决你的问题,请参考以下文章

使用Visual Studio Code自定义代码模版

2x2矩阵相乘模版

overlay rate

vscode设置vue模版

Python代码阅读(第41篇):矩阵转置

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用