題目描述:
給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為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 雙端佇列,因為我們要支援隊頭插入和隊尾插入.單調佇列做法大致如下 首先我們需要找到單調性,這道題目的顯而易見.我們知道區間和的做法,一般都是字首和,而字首和的求法...