Algoogle

Algorithm for Programming Contest

積(行列)

基本情報


計算量

解説


コード


(matrix.cpp) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
typedef double number;
typedef vector<number> arr;
typedef vector<arr> mat;

number dot(const arr &a, const arr &b) {
    number ans = 0;
    for(int i = 0; i < (int)a.size(); ++i)
        ans += a[i] * b[i];
    return ans;
}

arr mul(const mat &A, const arr &x) {
    arr y(A.size());
    for(int i = 0; i < (int)A.size(); ++i)
        for(int j = 0; j < (int)A[0].size(); ++j)
            y[i] += A[i][j] * x[j];
    return y;
}

mat mul(const mat &A, const mat &B) {
    mat C(A.size(), arr(B[0].size()));
    for(int i = 0; i < (int)C.size(); ++i)
        for(int j = 0; j < (int)C[i].size(); ++j)
            for(int k = 0; k < (int)A[i].size(); ++k)
                C[i][j] += A[i][k] * B[k][j];
    return C;
}

問題


Comments