AcWing 126最大的和

2021-10-25 15:32:50 字數 1189 閱讀 4926

題目描述:

給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 * 1或更大的連續子陣列。

矩形的總和是該矩形中所有元素的總和。

在這個問題中,具有最大和的子矩形被稱為最大子矩形。

例如,下列陣列:

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,表示方形二維陣列的大小。

從第二行開始,輸入由空格和換行符隔開的n2n2個整數,它們即為二維陣列中的n2n2個元素,輸入順序從二維陣列的第一行開始向下逐行輸入,同一行資料從左向右逐個輸入。

陣列中的數字會保持在[-127,127]的範圍內。

輸出格式

輸出乙個整數,代表最大子矩形的總和。

資料範圍

1≤n≤1001≤n≤100

輸入樣例:

4

0 -2 -7 0 9 2 -6 2

-4 1 -4 1 -1

8 0 -2

輸出樣例:

15
和hduoj1003這題很像,只不過hdu上的求的是一維的,這道題可以稍作變化也就轉化成了和一維寫法一樣的思路,如果看不太懂dp寫法可以看我**注釋的部分,注釋起來的沒有用dp寫。

#include #include #include using namespace std;

const int max = 109;

int a[max][max];

int n;

int main()

}int ans = -1000;

for(int i = 1; i <= n; i++) // 列舉上邊界的行號}}

printf("%d\n", ans);

return 0;

}

AcWing 126 最大的和

給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 1或更大的連續子陣列。矩形的總和是該矩形中所有元素的總和。在這個問題中,具有最大和的子矩形被稱為最大子矩形。例如,下列陣列 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 其最大子矩形為 9 2 4 1 1 8 它擁有...

Acwing 126 最大的和(二維字首和)

給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 1或更大的連續子陣列。矩形的總和是該矩形中所有元素的總和。在這個問題中,具有最大和的子矩形被稱為最大子矩形。例如,下列陣列 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 其最大子矩形為 9 2 4 1 1 8 它擁有...

AcWing 135 最大子序和

acwing 135.最大子序和 大佬講解 原題解鏈結見文末 單調佇列 o n 首先單調佇列,不同一般的佇列,他需要的stl是deque 雙端佇列,因為我們要支援隊頭插入和隊尾插入.單調佇列做法大致如下 首先我們需要找到單調性,這道題目的顯而易見.我們知道區間和的做法,一般都是字首和,而字首和的求法...