bzoj1084 最大子矩陣

2022-06-03 07:54:05 字數 999 閱讀 4611

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

不能相互重疊。

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

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

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

3 2 2

1 -3

2 3-2 3

9solution

我們發現,這個矩陣驚人的只有兩行

一行的話,應當是很顯然的

f[i][j]代表1~i取了j段,暴力轉移即可

兩行的話

f[i][j][k]第一行前i個,第二行前j個,共取了k段

暴力列舉這一段有多長即可

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define il inline

#define re register

#define inf 1000000000

using

namespace

std;

int n,m,a[101],b[101],p,g[101][101],f[101][101][101

];int

main()

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

}cout

}for(int i=1,x,y;i<=n;i++)

for(int k=1;k<=p;k++)

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

for(int j=1;j<=n;j++)

}cout

return0;

}

bzoj 1084 最大子矩陣

written with stackedit.這裡有乙個 n m 的矩陣,請你選出其中 k 個子矩陣,使得這個 k 個子矩陣分值之和最大.注意 選出的 k 個子矩陣不能相互重疊。ps 這裡的題意有些不明確.可以選空矩陣 最多選 k 個 不能重疊指的是不能有相交部分.第一行為 n,m,k 1 n 10...

BZOJ1084 最大子矩陣(動態規劃)

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

BZOJ 1084 最大子矩陣 線性dp

給出乙個n m n mn m的矩陣,其中n 100,m 2 n leq100,m leq2 n 100,m 2,然後求選取k kk個子矩陣的最大值是多少。注意到這個m mm只有1 11和2 22兩種情形。當m 1 m 1m 1的時候,這個問題退化為乙個長度為n nn的序列選k kk段的最大值。fi,...