D - Matrix Vector Multiplication
cpaojitp1
最終更新日
問題
https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/6/ITP1_6_D
問題文
n×m 行列 A と m×1 行列 b が与えられる。
A と b の積 c を出力してね。
制約
- 1≤n,m≤100
- 0≤aij,bi≤1000
サンプル
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=104231001110,b=1230 なので、c=569 となる。
考察
定義から c は n×1 行列になって、 ci=∑j=1maijbj で求められる。
あとはやるだけ。
コード
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;
}