藍橋杯 演算法訓練 矩陣乘法

2021-10-02 18:28:51 字數 1096 閱讀 2591

——————————————————————————————

資源限制

時間限制:1.0s 記憶體限制:512.0mb

問題描述

輸入兩個矩陣,分別是ms,sn大小。輸出兩個矩陣相乘的結果。

輸入格式

第一行,空格隔開的三個正整數m,s,n(均不超過200)。

接下來m行,每行s個空格隔開的整數,表示矩陣a(i,j)。

接下來s行,每行n個空格隔開的整數,表示矩陣b(i,j)。

輸出格式

m行,每行n個空格隔開的整數,輸出相乘後的矩陣c(i,j)的值。

樣例輸入

2 3 2

1 0 -1

1 1 -3

0 31 2

3 1樣例輸出

-3 2

-8 2

提示矩陣c應該是m行n列,其中c(i,j)等於矩陣a第i行行向量與矩陣b第j列列向量的內積。

例如樣例中c(1,1)=(1,0,-1)(0,1,3) = 1 * 0 +01+(-1)*3=-3

——————————————————————————————

思路分析:這道題很簡單,就是考察如何利用多層迴圈模擬矩陣相乘,提示裡面已經告訴我們矩陣的乘法規則了,如果還是不了解建議學習一下行列式,下面直接看**:

#include

#include

#include

#define mms(t) memset(t, 0, sizeof(t))

//初始化,最好用typedef,個人壞習慣

int a[

205]

[205

], b[

205]

[205

], c[

205]

[205];

//二維陣列模擬矩陣

intmain()

}for

(int i=

0; i//三層for迴圈模擬矩陣乘法,邊運算邊輸出,提高**效率

for(

int i=

0; i)printf

("\n");

}}return0;

}

藍橋杯 演算法訓練 矩陣乘法

問題描述 輸入兩個矩陣,分別是m s,s n大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n 均不超過200 接下來m行,每行s個空格隔開的整數,表示矩陣a i,j 接下來s行,每行n個空格隔開的整數,表示矩陣b i,j 輸出格式 m行,每行n個空格隔開的整數,輸出相乘...

藍橋杯 演算法訓練 矩陣乘法

問題描述 輸入兩個矩陣,分別是m s,s n大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n 均不超過200 接下來m行,每行s個空格隔開的整數,表示矩陣a i,j 接下來s行,每行n個空格隔開的整數,表示矩陣b i,j 輸出格式 m行,每行n個空格隔開的整數,輸出相乘...

藍橋杯演算法訓練 矩陣乘法

題目鏈結 問題描述 輸入兩個矩陣,分別是ms,sn大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n 均不超過200 接下來m行,每行s個空格隔開的整數,表示矩陣a i,j 接下來s行,每行n個空格隔開的整數,表示矩陣b i,j 輸出格式 m行,每行n個空格隔開的整數,輸...