先DP处理出每点向上最多扩展出的0的个数
再用二维单调栈处理最大矩形
其实就是对每一行跑一遍单调栈……
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<stack>
using namespace std;
const int MAXN = 2000 + 50;
int map[MAXN][MAXN],f[MAXN][MAXN],dp[MAXN][MAXN];
int n,ans;

这篇博客介绍了如何解决寻找最大全零子矩阵的问题。通过先使用动态规划计算每点向上能扩展的零的个数,然后应用二维单调栈找出最大的全零矩形。在实现过程中,需要注意宽度是否包含端点,以及宽度的含义。思路清晰,特别是对于单调栈的应用和理解是解决问题的关键。
最低0.47元/天 解锁文章
1224

被折叠的 条评论
为什么被折叠?



