51nod 1158 全是1的最大子矩陣(單調棧)

2021-09-25 10:56:32 字數 421 閱讀 9837

思路:與這一題largest rectangle in a histogram很像,只不過本題需要做m次單調棧(因為有m行),先處理出每一行矩形的高度,然後以每一行為底求矩形的面積即可。

#include using namespace std;

const int n = 1e5 + 7;

int n, m, x, ans;

int h[n], a[n];

stack s;

int main()

s.push(0);

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

s.push(j);}}

cout << ans << endl;

}

51Nod 1158 全是1的最大子矩陣

1158 全是1的最大子矩陣 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 給出1個m n的矩陣m1,裡面的元素只有0或1,找出m1的乙個子矩陣m2,m2中的元素只有1,並且m2的面積是最大的。輸出m2的面積。input 第1行 2個數m,n中間用空格分隔 2 ...

51nod 1158 全是1的最大子矩陣

題目鏈結在這兒 如果我的部落格費解,可以看這篇部落格,認為清晰。首先把子矩陣預處理,g i j 表示第 i j 號元素能向左延伸的長度。進而針對每一列,假設是c列,考慮g i c i 1,row 得到g i c 元素在這一列上作為作為最小值的長度。假設這個區間是 u,d 那麼長度為d u 1,那麼臨...

51nod 1158 全是1的最大子矩陣

題目傳送門 題意 給出1個m n的矩陣m1,裡面的元素只有0或1,找出m1的乙個子矩陣m2,m2中的元素只有1,並且m2的面積是最大的。輸出m2的面積。這道題,是一道十分玄學的題目。在題目上方有兩個標籤 單調棧 和 dp 但實際上,這道題根本就不需要單調棧或是dp。因為我不會,所以我只會玄學 首先,...