最大子矩陣

2021-10-02 08:39:15 字數 973 閱讀 7812

(僅用於記錄個人思路)

題目:給你乙個m×n的整數矩陣,在上面找乙個x×y的子矩陣,使子矩陣中所有元素的和最大。

輸入:輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y(0

輸出:對於每組資料,輸出乙個整數,表示子矩陣的最大和。

si:1

4 5 2 2

3 361 649 676 588

992 762 156 993 169

662 34 638 89 543

525 165 254 809 280

so:2474

#include

#define ll long long

using

namespace std;

int m,n,x,y,s=

0,t,a[

1005][

1005];

intmain()

for(

int i=

1;i<=m;i++

)for

(int i=x;i<=m;i++)}

/* 比如還是上面那組矩陣

我想求乙個2*2的矩陣最大值

思路類似于容斥原理

第乙個矩陣因為是從左上角直接開始的,所以直接計算

第二個矩陣2 3換行2 3可認為是

0 0 0

1 2 3

1 2 3

第三個矩陣1 2換行1 2可認為是

0 1 2

0 1 2

0 1 2

第四個矩陣即原矩陣

即計算18-1-1-1-2-3(從大的九宮格中挖出小的四宮格)

即計算18-3-6+1,因為1的那個格被多減掉了一次所以加回來算出這個四宮格的大小

最後將幾個資料max求出最大值即為答案

*/cout<}return0;

}

最大子矩陣

描述 已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是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的矩陣。輸入的第...

最大子矩陣

已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是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的矩陣。輸入的第一行給...

最大子矩陣

描述 已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是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。分析 首先,對矩陣預處理一下,將這個...