洛谷P4147 玉蟾宫 (单调栈)
要求我们去找一个最大矩形面积。
单调栈做法(和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 玉蟾宫 (单调栈)的更多相关文章
- 洛谷P4147 玉蟾宫 单调栈/悬线法
正解:单调栈/悬线法 解题报告: ummm这题我当初做的时候一点思路也没有只会暴力出奇迹:D(啊听说暴力好像能水过去呢,,, 然后当初是看的题解,然后学了下悬线法 然后就忘了:D 然后我现在看发现看不 ...
- [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)
[BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ...
- P4147 玉蟾宫--单调栈
P4147 玉蟾宫 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子 ...
- [洛谷P4147] 玉蟾宫
类型:单调栈 传送门:>Here< 题意:求一个$01$矩阵中最大子矩形(全是$1$)的面积 解题思路 单调栈的一个经典应用 考虑维护一个数组$p[i][j]$表示$(i,j)$往上最多有 ...
- 洛谷P4147 玉蟾宫(动规:最大子矩形问题/悬线法)
题目链接:传送门 题目大意: 求由F构成的最大子矩阵的面积.输出面积的三倍. 1 ≤ N,M ≤ 1000. 思路: 悬线法模板题. #include <bits/stdc++.h> us ...
- 洛谷 P4147 玉蟾宫 (最大子矩形问题)
这道题用到了悬线法,非常牛逼,可以看这个论文. https://blog.csdn.net/twtsa/article/details/8120269 #include<cstdio> # ...
- bzoj 3039: 玉蟾宫 单调栈或者悬线法求最大子矩阵和
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 有一天,小猫rainbow ...
- 【BZOJ3039】玉蟾宫 单调栈
[BZOJ3039]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子 ...
- [tyvj]P1939玉蟾宫[单调栈]
[tyvj]P1939 玉蟾宫 ——!x^n+y^n=z^n 背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 描述 这 ...
随机推荐
- HMS Core Discovery第16期回顾|与虎墩一起,玩转AI新“声”态
HMS Core 在AI领域最新的技术能力有哪些?本期Discovery直播以<与虎墩一起,玩转AI新"声"态>为主题,邀请了HMS Core 机器学习服务产品经理.机 ...
- 枚举子集为什么是 O(3^n) 的
这是更新日志 \(2021/2/9\) 代数推导 \(2021/2/10\) 组合意义,构建 TOC 目录 枚举子集 复杂度证明 代数推导 组合意义 Summary 枚举子集 枚举子集为什么是 \(O ...
- 项目操作案例丨西门子PLC通过网关连接ACS800变频器
本案例控制对象为炉条机.以及蒸汽的控制以及现场数据参数的显示以及报警. PLC 选用西门子 CPU,通过 ET200 IO 模块控制现场设备并监控数据.变频器采用ABB ACS800变频器,将ABB ...
- 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(12)-Fiddler设置IOS手机抓包,你知多少???
1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler 能捕获Android 和 Windows Phone 等 ...
- pytest-fixture执行顺序
作用域-scope 作用域越大,越先执行,session>package>module>class>function. 是否自动调用fixture 自动调用(autouse=T ...
- bbs项目解读
1.注册功能 具体的效果图如下: 注册功能涉及到的逻辑步骤: 1.搭建前端html页面 2.向后端提交用户输入数据 3.对用户输入的数据格式进行校验 4.页面输入数据格式错误,及时向用户进行提示/正确 ...
- 踩坑,发现一个ShardingJdbc读写分离的BUG
ShardingJdbc 怎么处理写完数据立即读的情况的呢? 写在前面 我本地使用了两个库来做写库(ds_0_master)和读库(ds_0_salve),两个库并没有配置主从. 下面我就使用库里的 ...
- 关于DOS命令窗口的一点基本知识
1.DOS命令窗口又可称为CMD窗口.shell.终端. 2.常用的DOS命令: -硬盘分区名+: :进入到该硬盘分区(注意是英文冒号哦) -cd+目录名:进入到指定(该)目录 -dir:列出当前目录 ...
- HC32L110(四) HC32L110的startup启动文件和ld连接脚本
目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...
- 如何高效解决 C++内存问题,Apache Doris 实践之路|技术解析
导读:Apache Doris 使用 C++ 语言实现了执行引擎,C++ 开发过程中,影响开发效率的一个重要因素是指针的使用,包括非法访问.泄露.强制类型转换等.本文将会通过对 Sanitizer 和 ...