HDU1559最大子矩陣

2021-08-14 09:53:00 字數 801 閱讀 2438

hdu1559

problem description

給你乙個m×n的整數矩陣,在上面找乙個x×y的子矩陣,使子矩陣中所有元素的和最大。

input

輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y(0

output

對於每組資料,輸出乙個整數,表示子矩陣的最大和。

sample input

1

4 5 2 2

3 361 649 676 588

992 762 156 993 169

662 34 638 89 543

525 165 254 809 280

sample output

2474

解題說明:此題說明了所求矩陣的大小,我們只需搜尋出最大的那個即可。

dp[i][j]+=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1];這儲存了以左上角(0,0)到右下角(i,j)該子矩陣的和。

輸入乙個就預處理乙個。

maxval=max(maxval,dp[i][j]-dp[i-x][j]-dp[i][j-y]+dp[i-x][j-y]);記錄已經訪問的子矩陣(大小x,y,右下角為(i,j))和的最大。

#include#include#includeusing namespace std;

#define n 1024

int dp[n][n];

int main()

cout<

hdu 1559最大子矩陣

一直很少練dp 這幾天再學學 在本題中 a i j 的值表示左上角為 1,1 右下角為 i,j 的矩陣的所有元素之和 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。input 輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m...

hdu1559(最大子矩陣)

problem description 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。input 輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y 0 output 對於每組資料,輸出乙個整數,表示子矩陣的最大和...

hdu1559 最大子矩陣

problem description 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。input 輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y 0 m,n 1000 and 0 x m and 0 y n 表...