最大子矩陣(動態規劃)解析

2022-09-24 02:03:09 字數 793 閱讀 8097

已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空(大小至少是1 * 1)子矩陣。 比如,如下4 * 4的矩陣 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 的最大子矩陣是 9 2 -4 1 -1 8 這個子矩陣的大小是15。

輸入是乙個n * n的矩陣。輸入的第一行給出n (0 < n <= 100)。

再後面的若干行中,依次(首先從左到右給出第一行的n個整數,再從左到右給出第二行的n個整數……)給出矩陣中的n2個整數,整數之間由空白字元分隔(空格或者空行)。

已知矩陣中整數的範圍都在[-127, 127]。測試資料可能有多組,對於每組測試資料,輸出最大子矩陣的大小。示例1

40 -2 -7 0

9 2 -6 2

-4 1 -4 1

-1 8 0 -215#include

#include

#include

int juzhen[105][105];

int sum[105];

int dp[105];

int merge(int x,int y,int n)

} int res=get_max(n);

return res;

}int get_max(int n)

else

maxi=(maxi>dp[i])?maxi:dp[i];

} return maxi;

}int main()

} printf("%d\n",res);

} return 0;

}

最大子矩陣(動態規劃)

最大矩陣和顧名思義,就是乙個矩陣和最大,例如下面的矩陣 0 2 7 0 9 2 6 2 41 41 1 80 2 最終找到了和為15的矩陣 9 2 41 18所選的矩陣沒有規定,只要在這個大矩陣中,就可以了,那麼我們需要限定它的行和列 我們用三個for迴圈把所有的行的情況列舉,分別是i,j,k i從...

動態規劃 最大子矩陣的和

問題 最大子矩陣的和 最大子矩陣的和這個問題實際上是子串的最大和向二維空間的擴充套件!我們如果把每一列都看作乙個數的話,實際上也是個子串的最大和問題!不多說啦,大家看 體會吧!package com.liheng.algorithm author administrator 利用動態規劃求最大子矩陣...

openjudge 最大子矩陣 (DP 動態規劃)

include include cstring include include iomanip include vector include cmath include stack include algorithm include include map include queue using n...