SCOI2005 最大子矩陣

2022-03-03 17:27:33 字數 545 閱讀 1928

m=1的時候很簡單 不說了。

m=2的時候的動態規劃需要討論,有點麻煩。

我們設dp[i][j][k]為處理到第i行,已經使用了j個矩陣,這一行採取k的取用方式。

其中0表示什麼都不拿。

1表示只要左邊的。

2表示只要右邊的。

3表示兩邊都要,且分開加入矩陣。

4表示兩邊都要,放在乙個矩陣中。

然後轉移方程可以參見**。

**如下:

#include#include#include#includeusing namespace std;

int dp[105][15][5];

int mp[105][2];

int main()

}int ans = 0;

for(int i = 0;i <= k;i ++)for(int j = 0;j <= 4;j ++)ans = max( ans,dp[n][i][j] );

cout << ans;

return 0;

}

SCOI2005 最大子矩陣

dp!dp!dp!乙個dp蒟蒻的部落格裡寫滿了dp題,真不知道我之前是怎麼想的 任意門description 這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣不能相互重疊。input 第一行為n,m,k 1 n 100,1 m 2,1 k 10 ...

SCOI2005 最大子矩陣

這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣不能相互重疊。輸入格式 第一行為n,m,k 1 n 100,1 m 2,1 k 10 接下來n行描述矩陣每行中的每個元素的分值 每個元素的分值的絕對值不超過32767 輸出格式 只有一行為k個子矩陣...

SCOI2005 最大子矩陣

這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣 不能相互重疊。第一行為n,m,k 1 n 100,1 m 2,1 k 10 接下來n行描述矩陣每行中的每個元素的分值 每個元素的 分值的絕對值不超過32767 只有一行為k個子矩陣分值之和最大為多...