解题思路:

枚举每一行作为矩形的底,h[j]表示第j列向上延伸的最多的1,再用两个单调栈维护每列向左和向右第一个h值比它小的列l[j],r[j],那么矩形面积即是h[j]*(r[j]-l[j]-1)。可以证明最优解一定会被统计。
时间复杂度为O(n2)O(n^2)

#include<bits/stdc++.h>
#define ll long long
using namespace std;int getint()
{int i=0,f=1;char c;for(c=getchar();(c<'0'||c>'9')&&c!='-';c=getchar());if(c=='-')f=-1,c=getchar();for(;c>='0'&&c<='9';c=getchar())i=(i<<3)+(i<<1)+c-'0';return i*f;
}const int N=1005;
int n,m,ans;
int a[N][N],h[N],l[N],r[N],sta[N];
char s[2];int main()
{//freopen("lx.in","r",stdin);n=getint(),m=getint();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%s",s);a[i][j]=s[0]=='F'?1:0;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)h[j]=a[i][j]?h[j]+1:0;sta[0]=0;for(int j=1,top=0;j<=m;j++){while(top&&h[j]<=h[sta[top]])top--;l[j]=sta[top]+1,sta[++top]=j;}sta[0]=m+1;for(int j=m,top=0;j;j--){while(top&&h[j]<=h[sta[top]])top--;r[j]=sta[top]-1,sta[++top]=j;}for(int j=1;j<=m;j++)ans=max(ans,h[j]*(r[j]-l[j]+1));}cout<<ans*3<<'\n';return 0;
}

bzoj3039 玉蟾宫【单调栈】相关推荐

  1. 【BZOJ3039】玉蟾宫 单调栈

    [BZOJ3039]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格 ...

  2. 洛谷P4147 玉蟾宫(单调栈解决)

    题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N\times ...

  3. bzoj 3039 玉蟾宫 单调栈

    预处理出每个点向上扩展的高度,对于每一行维护单调递增的栈,在弹出元素的时候统计答案. #include<iostream> #include<cstdio> #include& ...

  4. bzoj3039 玉蟾宫

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 606  Solved: 367 [Submit][Status][Discuss] ...

  5. [BZOJ3039]玉蟾宫(悬线法)

    题目描述 传送门 题解 悬线法求最大全0子矩形模板题. h(i,j)表示点(i,j)悬线的最长长度,l(i,j)和r(i,j)分别表示点(i,j)的悬线能到h(i,j)这个长度的左右端点的限制. 预处 ...

  6. 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 753  Solved: 444 [Submit][Status][Discuss] ...

  7. 刷题总结——玉蟾宫(bzoj3039单调栈)

    题目: Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个格子里写着' ...

  8. 洛谷 P4147 玉蟾宫【悬线法/单调栈】

    题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N×MN\times MN×M ...

  9. 【BZOJ】3039: 玉蟾宫(DP/单调栈)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3039 每次看到我的提交都有点淡淡的忧伤T_T.. 看到此题我想到用前缀和维护点ij向左和向上能拓展的 ...

最新文章

  1. Oracle分页存储过程
  2. Connectify错误“Internet Connection Sharing is currently unavailable.”解决方法不要有多重的网桥连接
  3. python xpath语法-XPath语法和lxml模块(数据提取)
  4. 基于Python语言使用RabbitMQ消息队列(一)
  5. delphi刷新界面所选行丢失问题
  6. rn项目 假如cocoapods_React Native 如何集成到原生IOS项目中?
  7. c# forbidden.html,c# - google+ api error forbidden 403 - Stack Overflow
  8. 1-算法 排序 选择排序
  9. pytorch从ubuntu16.04到win7的迁移(解决)
  10. STM32工作笔记0099---Pacman常用命令
  11. 16qam matlab 误码率,16qam的误码率公式
  12. 捷速pdf修改器如何在pdf中添加附件
  13. 【Linux的开胃小菜】基于Ubuntu搭建内网DNS服务器
  14. 国际域名转出与ICANN投诉流程(完结篇)
  15. html图片指定refere,前端解决第三方图片防盗链的办法 - html referrer 访问图片资源 403 问题...
  16. 基于JavaGUI的中英文打字训练测试软件设计
  17. 一度智信:如何提高自己的电商店铺权重
  18. 视频会议新格局确立 云计算开启技术叠加时代
  19. python爬虫--第一个爬虫程序
  20. Ubuntu20修改屏幕亮度

热门文章

  1. 从一夜爆红到饱受争议,蚂蚁金服的相互宝如何闯关?
  2. CS229与《统计学习方法》的EM算法理解和比较,收敛性证明
  3. Strong-Convexity:强凸性
  4. win10下conda 使用教程
  5. Android UI线程
  6. AVL树(动图详解)
  7. 尤雨溪:Vue 3 将成为新的默认版本
  8. Win10鼠标右键菜单选项提示找不到应用程序解决方法
  9. 关于 Photoshop 图层
  10. 2020软件测试自学全套教程-基于python自动化软件测试-2020新版软件测试中级程序员学习路线