Ánh xạ tuyến tính hợp thành

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 647M
Input: stdin
Output: stdout

Dạng bài

Nhà toán học Euler-Turing đang nghiên cứu kiến trúc của một mạng nơ-ron tuyến tính thuần túy -- tức là mạng gồm nhiều lớp biến đổi tuyến tính liên tiếp, hoàn toàn không có hàm kích hoạt phi tuyến nào xen vào giữa.

Trong mô hình này, mỗi lớp thứ ~i~ nhận đầu vào là một vector thuộc không gian ~\mathbb{R}^{n_i}~ và trả ra vector thuộc ~\mathbb{R}^{n_{i+1}}~ thông qua một phép nhân với ma trận trọng số ~W_i~ kích thước ~n_{i+1} \times n_i~. Một ngày nọ, Euler-Turing nhận ra một sự thật thú vị: toàn bộ mạng -- dù gồm bao nhiêu lớp -- đều tương đương với một lớp duy nhất, vì tổ hợp của bất kỳ số hữu hạn ánh xạ tuyến tính nào cũng vẫn là một ánh xạ tuyến tính.

Bài toán đặt ra: nếu hai lớp liên tiếp có ma trận trọng số lần lượt là ~A~ (~m \times n~) và ~B~ (~n \times k~), thì ma trận của lớp tương đương duy nhất là ~C = A \cdot B~ (~m \times k~), trong đó:

~C_{ij} = \sum_{t=1}^{n} A_{it} \cdot B_{tj}~

Bạn được giao nhiệm vụ hiện thực hóa phép toán hợp thành này.

Đầu vào

Dòng đầu tiên chứa ba số nguyên ~m~, ~n~, ~k~.

Tiếp theo là ~m~ dòng, mỗi dòng chứa ~n~ số nguyên, mô tả ma trận ~A~.

Tiếp theo là ~n~ dòng, mỗi dòng chứa ~k~ số nguyên, mô tả ma trận ~B~.

Đầu ra

In ra ~m~ dòng, mỗi dòng gồm ~k~ số nguyên, là ma trận ~C = A \cdot B~. Các số trên cùng một dòng cách nhau bởi một dấu cách.

Giới hạn

  • ~1 \le m, n, k \le 500~
  • ~|A_{ij}|, |B_{ij}| \le 10^4~

Ví dụ

Đầu vào
2 3 2
1 2 3
4 5 6
7 8
9 10
11 12
Đầu ra
58 64
139 154
Giải thích

~C_{11} = 1 \cdot 7 + 2 \cdot 9 + 3 \cdot 11 = 7 + 18 + 33 = 58~

~C_{12} = 1 \cdot 8 + 2 \cdot 10 + 3 \cdot 12 = 8 + 20 + 36 = 64~

~C_{21} = 4 \cdot 7 + 5 \cdot 9 + 6 \cdot 11 = 28 + 45 + 66 = 139~

~C_{22} = 4 \cdot 8 + 5 \cdot 10 + 6 \cdot 12 = 32 + 50 + 72 = 154~


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.