1084 SCOI2005 最大子矩陣

2021-07-22 22:05:56 字數 911 閱讀 8869

time limit: 10 sec memory limit: 162 mb

submit: 2333 solved: 1148

[submit][status][discuss]

description

這裡有乙個n*m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意:選出的k個子矩陣

不能相互重疊。

input

第一行為n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下來n行描述矩陣每行中的每個元素的分值(每個元素的

分值的絕對值不超過32767)。

output

只有一行為k個子矩陣分值之和最大為多少。

sample input

3 2 2

1 -3

2 3-2 3

sample output

解答:分情況

m=1時,f1[k][i]表示1~i內含有k個子矩陣的狀態

m=2時,f[k][i][j]表示第一列1~i,第二列1~j含有k個子矩陣的狀態

兩種情況的狀態轉移見**理解。

#include

#include

using

namespace

std;

int a[110][3],n,m,k,f1[11][110],f[11][110][110],s[110],s1[110],s2[110];

int mymax(int x,int y)

int main()

}printf("%d\n",f1[k][n]);

}else

//if m==2

}printf("%d\n",f[k][n][n]);

}return

0;}

1084 SCOI2005 最大子矩陣

題目鏈結 題目大意 這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣 不能相互重疊。題解 開始沒看見m 2 因為m只能取1 2,明顯分類討論 m 1 f i j 表示前 i個選擇 了j段的 最大和,不選的話 f i j f i 1 j 選p 1 ...

bzoj1084 SCOI2005 最大子矩陣

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

BZOJ1084 SCOI2005 最大子矩陣

portal 注意到m只能為1或2 分類討論。m 1的時候其實就是最大k段連續子段和。f i j ma x f i j ma x f k j f k j 1 sum i s um k m 2時 g i j k 表示第一列到i,第二列到j,選了k個子矩陣的最大和 那麼有一下幾種情況 都不選 g i j...