HDU 1559最大矩陣和

2022-05-17 17:19:34 字數 637 閱讀 1874

這題相對上一題來說多了個限制條件,矩陣大小要是x*y的,這樣的話倒更簡單,只需計算出連續的x行,連續的y列和最大和即可,縱列和的求解用到了壓縮的思想,就是把連續的x行上的同一列的數都相加儲存在乙個陣列列對應的的下標元素裡面

1 #include2 #include

3int a[1001][1001

],n,m,x,y;

4int maxx(int *b,intk)5

15 sum[i]=sum[i-1]-b[i-y]+b[i];

16if(sum[i]>max)max=sum[i];17}

18return max;//

計算不同的行之間的相同的列之和的最大和,即乙個矩陣 19}

20int

maxpp()21

32}

33 max=maxx(b,k);

34if(sum//

這三行之所以放在同一的迴圈裡面就是為了 每一縱列都能進行一次取最大值35}

36return

sum;37}

38int

main()

3950

return0;

51 }

view code

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