矩陣乘法 藍橋杯

2021-10-02 06:22:20 字數 870 閱讀 7771

核心就是如何求取兩個矩陣的乘法,數學線代中兩個矩陣相乘之後的矩陣中c[i][j]是由左邊矩陣(矩陣相乘時)的第i行中的所有元素分別與右邊矩陣中的第j列中的元素相乘得到的和。c[i][j]+=a[i][jj]*b[jj][j];(核心一步)

ac**:

#include

#include

#include

#include

#include

#include

using

namespace std;

int a[35]

[35],b[35]

[35],c[35]

[35];

//陣列b代表每次需要乘的矩陣,陣列a代表最後的結果 ,c中間變數

intmain()

}else}}

for(i=

0;i)for

(j=0

;j) a[i]

[j]=c[i]

[j];

//陣列a代表轉化後的最後的結果 ,陣列c代表訪問更新的結果(中間變數)

memset

(c,0

,sizeof

(c))

;//將陣列c賦值0便於下次計算使用這個中間變數 }}

for(i=

0;i)return0;

}

這個題挺簡單的,只是第一次接觸的話,核心的那個步驟容易想不出來,我也是想了很大一會才慢慢除錯出來的。感覺還是不難,還是自己太菜了,沒有那麼快就想出來這個核心的一句話。

藍橋杯 矩陣乘法

演算法訓練 矩陣乘法 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入兩個矩陣,分別是m s,s n大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n 均不超過200 接下來m行,每行s個空格隔開的整數,表示矩陣a i,j 接下來s行,每行n個空格隔開的整數...

藍橋杯 矩陣乘法

演算法訓練 矩陣乘法 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入兩個矩陣,分別是m s,s n大小。輸出兩個矩陣相乘的結果。輸入格式 第一行,空格隔開的三個正整數m,s,n 均不超過200 接下來m行,每行s個空格隔開的整數,表示矩陣a i,j 接下來s行,每行n個空格隔開的整數...

藍橋杯 矩陣乘法

題目大意 有n個矩陣,大小分別為a0 a1,a1 a2,a2 a3,a n 1 a n 現要將它們依次相乘,只能使用結合率,求最少需要多少次運算。兩個大小分別為p q和q r的矩陣相乘時的運算次數計為p q r。題目分析 本題是計算一系列連乘矩陣的最小運算次數。這是一道非常經典的動態規劃的題目。動態...