最優子矩陣

2021-09-25 16:50:47 字數 849 閱讀 8923

上一題(有序數對)

最優子矩陣

【題目描述】

給定乙個n*n的矩陣

對於乙個k*k的子矩陣(k任意)

設a為其主對角線上的元素之和(主對角線即左上-右下對角線)

設b為其副對角線上的元素之和

求乙個k*k的子矩陣,使得其a-b最大。

【輸入資料】

第一行乙個整數n,表示矩陣的大小,以下n行,每行n個數,描述這個矩陣

【輸出資料】

乙個數,表示最大的a-b

【輸入樣例】

3-3 4 5

7 9 -2

1 0 -6

【輸出樣例】

5【友情提示】

選擇樣例中紅色的子矩陣即可

【資料約定】

30%資料滿足n≤5

60%資料滿足n≤50

100%資料滿足2≤n≤400,矩陣中元素的絕對值≤1000

(特別友好的還有友情提示)

一開始看見這個就硬斗(emm就是出個大概的框架然後把樣例帶進去算,出關係式),後來老師講解的時候才發現原來要用字首和(對角線的字首和)講完之後發現其實很簡單...

主要思路就是將二維陣列上的每乙個點的對角線字首和求出來,然後再求出不同矩形的主對角線之和and副對角線之和,再比較求出最大差值。

**如下

#includeusing namespace std;

int f[405][405],a[405][405],b[405][405],x,y,all;

int main()

for(int k=2;k<=n;k++) }

cout

}

最優矩陣連乘

time limit 1 ms memory limit 128 mb difficulty 3 乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c...

最優矩陣連乘

乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c可以表示成 a b c或者是a b c 兩者的運算量卻不同。例如當a 2 3 b 3 4 c 4 ...

最優矩陣連乘問題

1.引言 多矩陣連乘 對於一般的矩陣乘法來說,如矩陣a m,n 與矩陣b n,p 相乘需要進行的加法次數為m n p次乘法。由於矩陣乘法滿足結合律,因此矩陣相乘的結合性,會影響整個計算表示式的乘法執行次數。如下面的例子,其中a 10,5 b 5,20 c 20,3 1 ab c 執行乘法次數為130...