hdu1559 最大子矩陣

2021-08-08 17:53:20 字數 1173 閱讀 1379

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 ),表示給定的矩形有m行n列。接下來這個矩陣,有m行,每行有n個不大於1000的正整數。

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

思路:和hdu1081那題差不多,只不過這題限制了子矩陣的長和寬

**如下

#include

#include

#include

#include

#define ll long long int

using

namespace

std;

int a[1005][1005];

ll b[1005];

int main()

else

}for(int i=2;i<=n+1-x;i++)

else }}

printf("%lld\n",ans);

}return

0;}

也可以用dp來寫

#include

#include

#include

#include

#define ll long long int

using

namespace

std;

ll dp[1005][1005];//dp[i][j]表示左上角點(1,1)和右下角點(i,j)的矩形中所有元素的和

int main()

printf("%lld\n",ans);

}return

0;}

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 對於每組資料,輸出乙個整數,表示子矩陣的最大和...

HDU 1559 最大子矩陣

給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y 0 對於每組資料,輸出乙個整數,表示子矩陣的最大和。1 4 5 2 2 3 361 649 676 588 992 ...