最大子矩陣問題 dp

2021-07-10 19:33:24 字數 1259 閱讀 4151

@(e acmer)

題意:給你乙個矩陣,求它的所有元素和最大的子矩陣.

分析:

我們只知道一維的情況就是經典的最大子段和.然而維數達到二維就變的複雜了.

我們觀察資料範圍500,易想到n3

的演算法也能過.純暴力是n4

的方法

然後可以通過列舉其中一維,dp最後一維的方法求出.

處理列上的和為字首和,然後列舉列的開頭和結尾,形成的段,然後再在行上進行最大子段和複雜度剛好n3

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef pair pii;

typedef

long

long ull;

typedef

long

long ll;

typedef

vector

vi;

#define xx first

#define yy second

#define rep(i, a, n) for (int i = a; i < n; i++)

#define sa(n) scanf("%d", &(n))

#define vep(c) for(decltype((c).begin()) it = (c).begin(); it != (c).end(); it++)

const

int mod = int(1e9) + 7, inf = 0x3fffffff, maxn = 1e5 + 12;

ll a[555][555];

ll dp[555];

int main(void)

}ll max_sum=-inf;

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

} }

printf("%lld\n",max_sum);

}return

0;}

最大子矩陣 DP

time limit 10000ms memory limit 165888kb 64bit io format lld llu hysbz 1084 這裡有乙個n m的矩陣,請你選出其中k個子矩陣,使得這個k個子矩陣分值之和最大。注意 選出的k個子矩陣不能相互重疊。第一行為n,m,k 1 n 10...

最大子矩陣 dp

已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是1 1 子矩陣。比如,如下4 4的矩陣 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 的最大子矩陣是 9 2 4 1 1 8 這個子矩陣的大小是15。輸入是乙個n n的矩陣。輸入的第一行給出n...

dp專題 最大子矩陣

題目大意 求乙個最大為100 100矩陣中的子矩陣中元素之和的最大值。列舉此子矩陣是第i行到第j行。然後壓成一維dp最大子段和。include include include include include include include include include include includ...