cpp-337Đọc toàn bộ đề miễn phí

Nhân hai ma trận nhỏ

Phép nhân ma trận là trái tim của đại số tuyến tính: nó mô tả việc thực hiện liên tiếp hai

C++Cơ bản15 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

linear-algebramatrixmultiplicationentry-ramp

Kiến thức tiên quyết: cpp-basics, arrays, nested-loops.

Nội dung đề bài

Mô tả bài toán

Phép nhân ma trận là trái tim của đại số tuyến tính: nó mô tả việc thực hiện liên tiếp hai phép biến đổi tuyến tính. Khác với phép cộng, nhân hai ma trận cần một vòng lặp thứ ba để cộng dồn tích của các cặp phần tử, và điều kiện về kích thước cũng chặt hơn: số cột của ma trận trái phải bằng số hàng của ma trận phải.

Yêu cầu

Cho ma trận số nguyên A kích thước n x m và ma trận số nguyên B kích thước m x p. Hãy in ra tích C = A * B, kích thước n x p, với C[i][j] = A[i][0] * B[0][j] + A[i][1] * B[1][j] + ... + A[i][m-1] * B[m-1][j], tức là cộng dồn A[i][k] * B[k][j] theo mọi k từ 0 đến m-1.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. In đúng n dòng, mỗi dòng p số nguyên cách nhau một dấu cách, không in thêm gì khác.

Input

  • Dòng đầu tiên: ba số nguyên n, m, p (1 <= n, m, p <= 3).
  • n dòng tiếp theo: ma trận A, mỗi dòng m số nguyên đọc từ trái sang phải.
  • m dòng tiếp theo nữa: ma trận B, mỗi dòng p số nguyên.

Output

In ra n dòng, mỗi dòng p số nguyên là một hàng của C. Hai số trên cùng một dòng cách nhau đúng một dấu cách, không có dấu cách ở cuối dòng.

Ràng buộc

  • |A[i][j]| <= 100, |B[i][j]| <= 100; mọi giá trị đều nằm gọn trong kiểu int.
  • Ba vòng lặp với n, m, p <= 3 nên bài chạy tức thì, thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

2 2 2
1 2
3 4
5 6
7 8

Output

19 22
43 50

Ví dụ 2

Input

1 3 2
1 2 3
1 0
0 1
1 1

Output

4 5

Giải thích

Với dữ liệu vào:

ta có C[0][0] = 1*5 + 2*7 = 19, C[0][1] = 1*6 + 2*8 = 22, C[1][0] = 3*5 + 4*7 = 43, C[1][1] = 3*6 + 4*8 = 50, nên kết quả là:

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo