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