要求我们去找一个最大矩形面积。

单调栈做法(和P1950 长方形那道题类似(一模一样))。

 1 #include<bits/stdc++.h>
2 using namespace std;
3 char M[1010][1010];
4 int n,m,h[1010],l[1010],r[1010];
5 int s[1010],top;
6
7 void ddzl(){
8 top=0;
9 for(int i=m;i>=1;i--){
10 while(top!=0 && h[i]<h[s[top]]) l[s[top--]]=i;
11 s[++top]=i;
12 }
13 while(top) l[s[top--]]=0;
14 }
15
16 void ddzr(){
17 top=0;
18 for(int i=1;i<=m;i++){
19 while(top!=0 && h[i]<h[s[top]]) r[s[top--]]=i;
20 s[++top]=i;
21 }
22 while(top) r[s[top--]]=m+1;
23 }
24 int ans=0;
25 void work(){
26 ddzl();ddzr();
27 for(int i=1;i<=m;i++)
28 ans=max(ans,h[i]*(r[i]-l[i]-1));
29 }
30
31 int main(){
32 scanf("%d%d",&n,&m);
33 for(int i=1;i<=n;i++)
34 for(int j=1;j<=m;j++)
35 cin>>M[i][j];
36 for(int i=1;i<=n;i++){
37 for(int j=1;j<=m;j++){
38 if(M[i][j]=='F') h[j]++;
39 else h[j]=0;
40 }
41 work();
42 }
43 cout<<3*ans;
44 }

俗话说得好啊,题做多了总有重复的,模型记住了,其他类似的题也就能解决了。。。

洛谷P4147 玉蟾宫 (单调栈)的更多相关文章

  1. 洛谷P4147 玉蟾宫 单调栈/悬线法

    正解:单调栈/悬线法 解题报告: ummm这题我当初做的时候一点思路也没有只会暴力出奇迹:D(啊听说暴力好像能水过去呢,,, 然后当初是看的题解,然后学了下悬线法 然后就忘了:D 然后我现在看发现看不 ...

  2. [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)

    [BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ...

  3. P4147 玉蟾宫--单调栈

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

  4. [洛谷P4147] 玉蟾宫

    类型:单调栈 传送门:>Here< 题意:求一个$01$矩阵中最大子矩形(全是$1$)的面积 解题思路 单调栈的一个经典应用 考虑维护一个数组$p[i][j]$表示$(i,j)$往上最多有 ...

  5. 洛谷P4147 玉蟾宫(动规:最大子矩形问题/悬线法)

    题目链接:传送门 题目大意: 求由F构成的最大子矩阵的面积.输出面积的三倍. 1 ≤ N,M ≤ 1000. 思路: 悬线法模板题. #include <bits/stdc++.h> us ...

  6. 洛谷 P4147 玉蟾宫 (最大子矩形问题)

    这道题用到了悬线法,非常牛逼,可以看这个论文. https://blog.csdn.net/twtsa/article/details/8120269 #include<cstdio> # ...

  7. bzoj 3039: 玉蟾宫 单调栈或者悬线法求最大子矩阵和

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 有一天,小猫rainbow ...

  8. 【BZOJ3039】玉蟾宫 单调栈

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

  9. [tyvj]P1939玉蟾宫[单调栈]

    [tyvj]P1939 玉蟾宫 ——!x^n+y^n=z^n 背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 描述 这 ...

随机推荐

  1. 前端(五)-Vue简单基础

    1. Vue概述 Vue (读音/vju/, 类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月. 与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用. Vue的核心库只 ...

  2. Map集合和Map常用子类

    Map集合 java.util.Map<K,V>集合 Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个值(Key,Value) 2.Map集合中的元素,key和value ...

  3. 获取字典中values值中最大的数,返回对应的keys

    1.字典中键值对的获取 print(data.values()) # 查看字典的值 print(data.keys()) # 查看字典的key 2.对字典中的值进行排序 sorted(data.val ...

  4. linux常用命令和快捷键收集

    find / -name php #查找根目录下所有包含 php 字符的文件和目录 find / -ctime 1 #查找最近一天下载的文件和目录 yum install lrzsz #安装上传下载组 ...

  5. YII扩展功能图

  6. SElinux管理

    SElinux: 是Linux的一个强制访问控制的安全模块 SElinux的相关概念: 对象:文件.目录.进程.端口等 主体:进程称为主体 SElinux将所有的文件都赋予一个type类型的标签,所有 ...

  7. DolphinScheduler 功能开发:⼯作流级别任务空跑(后端),测试工作流是否正确执行...

    点击上方 蓝字关注我们 ✎ 编 者 按 在今年由中国科学院软件研究所主办的开源软件所供应链点亮计划-开源之夏活动中,有不少小伙伴提交了关于 DolphinScheduler 的项目,本期是来自成都信息 ...

  8. fast json 乱序问题解决过程

    解决问题:保存到redis中的jsonstring在转回jsonObject的时候乱序: 解决方案:https://inlhx.iteye.com/blog/2312512 解决过程: 1 看fast ...

  9. Web 前端模块出现的原因,以及 Node.js 中的模块

    模块出现原因 简单概述 随着 Web 2.0 时代的到来,JavaScript 不再是以前的小脚本程序了,它在前端担任了更多的职责,也逐渐地被广泛运用在了更加复杂的应用开发的级别上. 但是 JavaS ...

  10. [WPF]使用DispatcherUnhandledException捕捉未经处理的异常

    使用DispatcherUnhandledException捕捉未经处理的异常 using System.Windows; namespace Test02 { /// <summary> ...