#jZCybttg060501. 1639:Biorhythms

1639:Biorhythms

1641:【例 1】矩阵 A×B

题目描述

矩阵 AA 规模为 n×mn \times m,矩阵 BB 规模为 m×pm \times p,现需要你求 A×BA \times B

矩阵相乘的定义:n×mn \times m 的矩阵与 m×pm \times p 的矩阵相乘变成 n×pn \times p 的矩阵,令 aika_{ik} 为矩阵 AA 中的元素,bkjb_{kj} 为矩阵 BB 中的元素,则相乘所得矩阵 CC 中的元素

cij=k=1maikbkjc_{ij} = \sum_{k=1}^{m} a_{ik} b_{kj}

具体可见样例。

输入格式

第一行两个数 n,mn, m

接下来 nn 行,每行 mm 个整数,描述矩阵 AA

接下来一行输入 pp

接下来 mm 行,每行 pp 个整数,描述矩阵 BB

输出格式

输出矩阵 AA 与矩阵 BB 相乘所得的矩阵 CC

样例

样例输入 #1

2 3
1 2 3
3 2 1
2
1 1
2 2
3 3

样例输出 #1

14 14
10 10

样例解释 #1

  • 矩阵 AA:$$\begin{bmatrix} 1 & 2 & 3 \\ 3 & 2 & 1 \end{bmatrix}$$
  • 矩阵 BB:$$\begin{bmatrix} 1 & 1 \\ 2 & 2 \\ 3 & 3 \end{bmatrix}$$
  • 计算 C=A×BC = A \times B
    • $c_{11} = 1 \times 1 + 2 \times 2 + 3 \times 3 = 1 + 4 + 9 = 14$
    • c12=1×1+2×2+3×3=14c_{12} = 1 \times 1 + 2 \times 2 + 3 \times 3 = 14
    • $c_{21} = 3 \times 1 + 2 \times 2 + 1 \times 3 = 3 + 4 + 3 = 10$
    • c22=3×1+2×2+1×3=10c_{22} = 3 \times 1 + 2 \times 2 + 1 \times 3 = 10
  • 输出:
    14 14
    10 10
    

数据范围

对于全部数据:

  • 1n,m,p1001 \le n, m, p \le 100
  • 10000aij,bij10000-10000 \le a_{ij}, b_{ij} \le 10000

时空限制

  • 时间限制:1000 ms
  • 内存限制:524288 KB

注意:本题是矩阵乘法的模板题。按照定义,三重循环计算即可。注意矩阵乘法的规则:Cij=k=1mAik×BkjC_{ij} = \sum_{k=1}^{m} A_{ik} \times B_{kj}。因此,需要先读入矩阵 AABB,然后计算 CC

由于数据范围较小,直接使用 O(nmp)O(n \cdot m \cdot p) 的算法即可。注意中间结果可能超出 int 范围?aij,bija_{ij}, b_{ij} 绝对值不超过 1000010000m100m \le 100,所以最大累加和绝对值为 100×10000×10000=1010100 \times 10000 \times 10000 = 10^{10},超出 int 范围(2×1092\times 10^9),因此需要使用 long long 存储中间结果。

输出时,每行元素之间用空格隔开,行末无多余空格。