Asa's Website

D - Matrix Vector Multiplication

cpaojitp1

最終更新日

Table of Contents

Loading...

問題

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/6/ITP1_6_D

問題文

n×mn \times m 行列 AAm×1m \times 1 行列 bb が与えられる。
AAbb の積 cc を出力してね。

制約

サンプル

I/O 1

3 4 1 2 0 1 0 3 0 1 4 1 1 0 1 2 3 0
5 6 9

A=(120103014110),b=(1230)A = \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 3 & 0 & 1 \\ 4 & 1 & 1 & 0 \end{pmatrix}, b = \begin{pmatrix} 1 \\ 2 \\ 3 \\ 0 \end{pmatrix} なので、c=(569)c = \begin{pmatrix} 5 \\ 6 \\ 9 \end{pmatrix} となる。

考察

定義から ccn×1n \times 1 行列になって、 ci=j=1maijbjc_i = \sum_{j=1}^m a_{ij} b_j で求められる。
あとはやるだけ。

コード

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

int main() { int n, m; cin >> n >> m; vector a(n, vector<int>(m)); rep(i, n) rep(j, m) cin >> a[i][j]; vector<int> b(m); rep(i, m) cin >> b[i]; vector<int> ans(n, 0); rep(i, n) { rep(j, m) ans[i] += a[i][j] * b[j]; } rep(i, n) cout << ans[i] << endl; return 0; }