Asa's Website

D - Matrix Multiplication

cpaojitp1

最終更新日

Table of Contents

Loading...

問題

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/7/ITP1_7_D

問題文

n×mn \times m の行列 AAm×lm \times l の行列 BB が与えられる。
AABB の積 CC を出力する。

制約

サンプル

I/O 1

3 2 3 1 2 0 3 4 5 1 2 1 0 3 2
1 8 5 0 9 6 4 23 14

A=(120345)A = \begin{pmatrix} 1 & 2 \\ 0 & 3 \\ 4 & 5 \end{pmatrix}, B=(121032)B = \begin{pmatrix} 1 & 2 & 1 \\ 0 & 3 & 2 \end{pmatrix} なので、C=(18509642314)C = \begin{pmatrix} 1 & 8 & 5 \\ 0 & 9 & 6 \\ 4 & 23 & 14 \end{pmatrix} となる。

考察

実装をがんばってやるだけ。
ギリギリオーバーフローしそう。

コード

https://onlinejudge.u-aizu.ac.jp/status/users/a01sa01to/submissions/1/ITP1_7_D/judge/6370762/C++17

int main() { ll n, m, l; cin >> n >> m >> l; vector A(n, vector<ll>(m)), B(m, vector<ll>(l)), ans(n, vector<ll>(l, 0)); rep(i, n) rep(j, m) cin >> A[i][j]; rep(i, m) rep(j, l) cin >> B[i][j]; rep(i, n) rep(j, m) rep(k, l) { ans[i][k] += A[i][j] * B[j][k]; } rep(i, n) rep(j, l) cout << ans[i][j] << (j == l - 1 ? "\n" : " "); return 0; }