Решение задачи Матрицы с Acmp

С пояснением   Просмотров: 99


Аня недавно узнала, что такое квадратная матрица размерности n. Это таблица n×n с целыми числами в ячейках. Число, стоящее на пересечении i-ой строки и j-ого столбца матрицы A, кратко обозначается A[i, j]. Матрицы можно умножать, и Аня быстро освоила, как запрограммировать эту операцию с помощью циклов.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int m, n, a, b, p;
    scanf("%d %d %d %d %d", &m, &n, &a, &b, &p);
    vector<vector<int > > r, res;
    for(int i = 0; i < n; ++i){
        vector<int> t(n);
        for(int j = 0; j < n; ++j){
            scanf("%d", &t[j]);
            t[j] %= p;
        }
        r.push_back(t);
    }
    res = r;
    for(int k = 0; k < m - 1; ++k){
        vector<vector<int>  > temp;
        for(int i = 0; i < n; ++i){
            vector<int> t(n);
            for(int j = 0; j < n; ++j){
                scanf("%d", &t[j]);
            }
            temp.push_back(t);
        }
        for(int i = 0; i < r.size(); ++i){
            for(int j = 0; j < r[i].size(); ++j){
                int s = 0;
                for(int h = 0; h < n; ++h)
                    s += r[i][h] * temp[h][j];
                res[i][j] = s % p;
            }
        }
        r = res;
    }
    printf("%d ", res[a - 1][b - 1]);
    return 0;
}

         

Администратор Photo Автор: Администратор


ВЫБЕРИТЕ VISUAL C++ !!! ЗАХОДИТ ЗА 1.968 СЕКУНДЫ
$$ \large{ A = \begin{pmatrix}
A_{11} A_{12} \\
A_{21} A_{22} \\
A_{31} A_{32}
\end{pmatrix}

B = \begin{pmatrix}
B_{11} B_{12} \\
B_{21} B_{22} \\
B_{31} B_{32}
\end{pmatrix}
}
$$
$$ \large{
C_{11} = A_{11} * B_{11} + A_{12} * B_{21} \\
C_{12} = A_{11} * B_{12} + A_{12} * B_{22} \\
C_{21} = A_{21} * B_{11} + A_{22} * B_{21} \\
C_{22} = A_{21} * B_{12} + A_{22} * B_{22} \\
C_{31} = A_{31} * B_{11} + A_{32} * B_{21} \\
C_{32} = A_{31} * B_{12} + A_{32} * B_{22}
}
$$
Операция умножения двух матриц А и В представляет собой вычисление результирующей матрицы С , каждый элемент $$ c_{kj} $$ которой равен сумме произведений элементов в соответствующей строке первой матрицы $$ a_{kj} $$ и элементов в столбце второй матрицы $$ b_{kj} $$.


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться