HihoCoder - 1673 (单调队列)
题目:https://vjudge.net/contest/319166#problem/A
题意:有一个01矩阵,求一个最大子矩阵面积,这个矩阵要求里面都是01间隔,没有0或1连续
思路:这个题其实也就是求一个最大面积,复杂度只可以n^2,这个我们就可以想到是高楼问题,这个题唯一特殊的地方就是必须要01间隔,这个其实无所谓,我们预处理连续数组的时候改一改,因为我们每个01都可以当作一个1*1的矩阵,所以我们初值赋为1,然后再判断01交替来判断是否连续,然后我们就可以转化成高楼,我们枚举哪个为底,然后用栈计算以当前为底的所有能组成的矩形面积
#include<bits/stdc++.h>
#define maxn 2005
#define mod 1000000007
using namespace std;
typedef long long ll;
ll n,m;
char mp[maxn][maxn];
ll d[maxn][maxn];
ll q[maxn][maxn];
void solve(){
ll mx=;
for(int i=;i<=n;i++){
stack<ll> e;
e.push();
for(int j=;j<=m+;j++){
while(q[i][j]<q[i][e.top()]){
ll dex=e.top();
e.pop();
ll r=j-e.top()-;
mx=max(mx,r*q[i][dex]);
}
e.push(j);
}
}
printf("%lld",mx);
}
int main(){
scanf("%lld%lld",&n,&m);
for(int i=;i<=n;i++){
scanf("%s",mp[i]+);
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(mp[i][j]=='') d[i][j]=;
else d[i][j]=;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if((d[i][j]&&d[i-][j]==)||(d[i][j]==&&d[i-][j])) q[i][j]=q[i-][j]+;
else q[i][j]=;
}
}
solve();
return ;
}
HihoCoder - 1673 (单调队列)的更多相关文章
- HihoCoder - 1664 (单调队列)
题目:https://vjudge.net/contest/319166#problem/B 题意: 一个01间隔矩阵,求一个方阵的最大边长,这个方阵的要求是里面01分隔,不能有01相邻 思路:同 ...
- hihoCoder 1403 后缀数组一·重复旋律(后缀数组+单调队列)
#1403 : 后缀数组一·重复旋律 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成 ...
- hdu 5289(单调队列)
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- BestCoder Round #89 B题---Fxx and game(单调队列)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5945 问题描述 输入描述 输出描述 输入样例 输出样例 题意:中文题,不再赘述: 思路: B ...
- 单调队列 && 斜率优化dp 专题
首先得讲一下单调队列,顾名思义,单调队列就是队列中的每个元素具有单调性,如果是单调递增队列,那么每个元素都是单调递增的,反正,亦然. 那么如何对单调队列进行操作呢? 是这样的:对于单调队列而言,队首和 ...
- FZU 1914 单调队列
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...
- BZOJ 1047 二维单调队列
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1047 题意:见中文题面 思路:该题是求二维的子矩阵的最大值与最小值的差值尽量小.所以可以考 ...
- 【BZOJ3314】 [Usaco2013 Nov]Crowded Cows 单调队列
第一次写单调队列太垃圾... 左右各扫一遍即可. #include <iostream> #include <cstdio> #include <cstring> ...
- BZOJ1047: [HAOI2007]理想的正方形 [单调队列]
1047: [HAOI2007]理想的正方形 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2857 Solved: 1560[Submit][St ...
- hdu 3401 单调队列优化DP
Trade Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
随机推荐
- javaSE javaEE javaME的区别、有什么不同?
http://zhidao.baidu.com/link?url=oFEPOmW8BnQ0M0w0krS9DyMA5UCUufgHJWV45r9UQZ-0vp_IOx-Yl-VV0hZQ-vHXGYo ...
- HTML--JS 二级联动
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- Vue过渡:CSS过渡
一 项目结构 二 App.vue <template> <div id="app"> <transition name="fade" ...
- 腾达Tenda W311MA无线网卡Linux下驱动安装
菜鸟看这里https://help.ubuntu.com/community/WifiD ... enda_W311M 最近也买了颗Tenda W311M网卡,简单说一下驱动的安装和hostapd做S ...
- C#清空StringBuilder的三种方法
1.Remove例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val.L ...
- css负边距布局
三行三列的布局 代码结构 <div class="container"> <ul> <li>1</li> <li>2&l ...
- 爬虫(十一)—— 请求库(三)pypeteer请求库
曾经使用模拟浏览器操作(selenium + webdriver)来写爬虫,但是稍微有点反爬的网站都会对selenium和webdriver进行识别,网站只需要在前端js添加一下判断脚本,很容易就可以 ...
- Python 学习笔记18 异常处理
我们在编码的过程中,难免会遇到一些错误和异常, 这时候程序会异常退出,并且会抛出错误信息: 比如: print(1/0) ''' 输出: Traceback (most recent call las ...
- [LeetCode] 177.第N高薪水
题目: 编写一个 SQL 查询,获取 Employee表中第 n 高的薪水(Salary). +----+--------+ | Id | Salary | +----+--------+ | 1 | ...
- 爬取王垠的博客并生成pdf
尚未完善,有待改进 #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' import pdfkit im ...