HDU 1559 最大子矩陣 DP

2021-09-22 11:20:42 字數 584 閱讀 4585

構造二維字首和矩陣。即矩陣上的點a[i][j]表示左上方的點為(0,0),右下方的點為(i,j)的矩陣的和。然後列舉每乙個矩陣的左上方的點。因為矩陣的長和寬是固定的,那麼這個矩陣實際上也已經固定了。此時這個矩陣的和用公式:

sum=a[i+x-1][j+y-1]-a[i+x-1][j-1]-a[i-1][j+y-1]+a[i-1][j-1];

取最大值就能夠了。

**例如以下:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define ll __int64

ll a[1001][1001];

int main()

}for(i=1;i<=n;i++)

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

{for(j=1;j<=m-y+1;j++)

{z=a[i+x-1][j+y-1]-a[i+x-1][j-1]-a[i-1][j+y-1]+a[i-1][j-1];

if(max1

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 表...