import java.util.Scanner;
public class Main {
public static void main(String[] arg) {
Scanner scanner = new Scanner(System.in);
// todo
}
}
NC14557. 小明学数学
描述
输入描述
前四行分别代表矩阵 A 和 B 的行数和列数。接下来若干行分别是矩阵 A 和 B 的各个元素(按行输入)。
输出描述
输出乘积矩阵的各个元素。
示例1
输入:
2 3 3 2 1 2 3 4 5 6 1 4 2 5 3 6
输出:
14 32 32 77
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 380K, 提交时间: 2020-09-11 16:11:17
#include<cstdio>using namespace std;int A[1005][1005], B[1005][1005], C[1005][1005];int main(){int n1, m1, n2, m2, i, j, k, c;scanf("%d%d%d%d", &n1, &m1, &n2, &m2);for(i = 1;i <= n1;i++)for(j = 1;j <= m1;j++)scanf("%d", &A[i][j]);for(i = 1;i <= n2;i++)for(j = 1;j <= m2;j++)scanf("%d", &B[i][j]);for(i = 1;i <= n1;i++){for(j = 1;j <= m2;j++){for(k = 1, c = 0;k <= m1;k++)c += A[i][k] * B[k][j];printf("%d\n", c);}}return 0;}
Python3(3.5.2) 解法, 执行用时: 27ms, 内存消耗: 3456K, 提交时间: 2017-12-28 09:18:18
a=int(input())b=int(input())c=int(input())d=int(input())g=[]h=[]for e in range(0,a*b):f=int(input())g.append(f)for i in range(0,c*d):j=int(input())h.append(j)for n in range(0,a):for k in range(0,d):m=0for l in range(0,b):m=h[l*d+k]*g[l+n*b]+mprint(m)