給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為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,表示方形二維陣列的大小。
從第二行開始,輸入由空格和換行符隔開的n2個整數,它們即為二維陣列中的n2個元素,輸入順序從二維陣列的第一行開始向下逐行輸入,同一行資料從左向右逐個輸入。
陣列中的數字會保持在[-127,127]的範圍內。
輸出格式
輸出乙個整數,代表最大子矩形的總和。
資料範圍
1≤n≤100
輸入樣例:
40 -2 -7 0 9 2 -6 2
-4 1 -4 1 -1
8 0 -2
輸出樣例:
15
對於這一題來說相對來說比較容易想到的解題方法是採用4重迴圈來分別列舉矩形的起點和終點,再利用我們平時用的字首和陣列進行計算,但是這樣是時間複雜度會達到o(n^4)會比較慢
//求和陣列
int n;
intmain()
}int res = int_min;
//i和j是邊界的列舉
題解 最大的和
解法一 分治思想 include include include using namespace std int n,a 200200 int fun int l,int r sum 0 for int i mid 1 i r i 不斷更新右側陣列中元素和的最大值 return max max fu...
最大的和 最大子矩陣和 貪心 字首和 dp
給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 1或更大的連續子陣列。矩形的總和是該矩形中所有元素的總和。在這個問題中,具有最大和的子矩形被稱為最大子矩形。例如,下列陣列 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2其最大子矩形為 9 2 4 1 1 8它擁有最大...
培訓貪心題解
在第乙個城市加滿,之後每到乙個城市加一公升油,直到滿足最低油耗量。注意有可能在第乙個城市就超過最低油耗量。include using namespace std int main 使用k次最大值的表情,再使用一次第二大值的表情,迴圈直到m次。include using namespace std l...