BZOJ 3039 玉蟾宮 懸線法

2021-06-27 07:32:05 字數 733 閱讀 8334

題目大意:給出一張地圖,求出這張地圖中最大的子矩陣,使得這個子矩陣不包含字母『r』。

思路:簡單的懸線法求最大子矩陣,還是不帶權值的,很好求。好久沒寫懸線了,複習一下。

code:

#include #include #include #include #define max 1010

using namespace std;

int m,n;

bool map[max][max];

int max_left[max][max],max_right[max][max];

int max_up[max][max];

inline char getchar()

int main()

for(int i = 1; i <= m; ++i)

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

if(map[i][j] && map[i - 1][j])

int ans = 0;

for(int i = 1; i <= m; ++i)

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

ans = max(ans,(max_left[i][j] + max_right[i][j] - 1) * (max_up[i][j] + 1));

cout << ans * 3 << endl;

return 0;

}

BZOJ 3039 玉蟾宮 懸線法

最大子矩陣.懸線法.時間複雜度o nm 懸線法就是記錄乙個h向上延伸的最大長度 懸線 l,r向左向右延伸的最大長度,然後通過遞推來得到.include using namespace std define ok c c f c r const int maxn 1009 int h maxn max...

BZOJ3039 玉蟾宮(懸線dp 單調棧)

description 有一天,小貓rainbow和freda來到了湘西張家界的天門山玉蟾宮,玉蟾宮宮主藍兔盛情地款待了它們,並賜予它們一片土地。這片土地被分成n m個格仔,每個格仔裡寫著 r 或者 f r代表這塊土地被賜予了rainbow,f代表這塊土地被賜予了freda。現在freda要在這裡賣...

bzoj3039 玉蟾宮 單調棧

題目描述 給定乙個01矩陣,找出乙個面積最大的子矩陣,使得其中的元素均為1。輸出這個最大面積乘3。輸入第一行兩個整數n,m,表示矩形土地有n行m列。接下來n行,每行m個用空格隔開的字元 f 或 r 描述了矩形土地。輸出輸出乙個整數,表示你能得到多少銀子,即 3 最大 f 矩形土地面積 的值。樣例輸入...