P4147玉蟾宫——最大子矩阵
悬线法裸题。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const MAXN=,MAXM=;
int n,m,lf[MAXN][MAXM],rt[MAXN][MAXM],ans,a[MAXN][MAXM],sta[MAXM],top;
bool d[MAXN][MAXM];
int main()
{
scanf("%d%d",&n,&m);
char dc;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin>>dc;
if(dc=='R')d[i][j]=;
else
{
for(int k=i-;k;k--)
if(d[k][j])
{
a[i][j]=i-k;
break;
}
if(!a[i][j])a[i][j]=i;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
}
for(int i=;i<=n;i++)
{
memset(sta,,sizeof sta);
top=;
for(int j=;j<=m;j++)
{
while(a[i][j]<=a[i][sta[top]]&&top)top--;
lf[i][j]=sta[top];
sta[++top]=j;
}
memset(sta,,sizeof sta);
top=;sta[top]=m+;
for(int j=m;j;j--)
{
while(a[i][j]<=a[i][sta[top]]&&top)top--;
rt[i][j]=sta[top];
sta[++top]=j;
}
// for(int j=1;j<=m;j++)
// printf("lf[%d][%d]=%d rt[%d][%d]=%d\n",i,j,lf[i][j],i,j,rt[i][j]);
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
int l,r;
if(d[i][j])continue;
if(!d[i][j]&&i>)
{
l=max(lf[i][j],lf[i-][j]);
r=min(rt[i][j],rt[i-][j]);
ans=max(ans,a[i][j]*(r-l-));
}
else ans=max(ans,rt[i][j]-lf[i][j]-);
}
printf("%d",*ans);
return ;
}
P4147玉蟾宫——最大子矩阵的更多相关文章
- P4147 玉蟾宫(悬线法求最大子矩阵)
P4147 玉蟾宫 悬线法 ,\(l_{i,j},r_{i,j},up_{i,j}\) 分别表示 \((i,j)\) 这个点向左,右,上能到达的远点.然后面积就很好办了.具体实现见代码. 然而,还有更 ...
- P4147 玉蟾宫
P4147 玉蟾宫 给定一个 \(N * M\) 的矩阵 求最大的全为 \(F\) 的子矩阵 Solution 悬线法 限制条件为转移来的和现在的都为 \(F\) Code #include<i ...
- [Luogu P4147] 玉蟾宫 (网格DP)
题面 传送门:https://www.luogu.org/problemnew/show/P4147 Solution 裸的求极大子矩阵 感谢wzj dalao的教学 首先,有一个很显然但很重要的结论 ...
- P4147 玉蟾宫--单调栈
P4147 玉蟾宫 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子 ...
- 悬线法 || BZOJ3039: 玉蟾宫 || Luogu P4147 玉蟾宫
题面: P4147 玉蟾宫 题解:过于板子举报了 #include<cstdio> #include<cstring> #include<iostream> #de ...
- [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)
[BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ...
- P4147 玉蟾宫 二维DP 悬线法
题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F ...
- dp--悬线dp P4147 玉蟾宫
题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F ...
- 洛谷P4147 玉蟾宫(动规:最大子矩形问题/悬线法)
题目链接:传送门 题目大意: 求由F构成的最大子矩阵的面积.输出面积的三倍. 1 ≤ N,M ≤ 1000. 思路: 悬线法模板题. #include <bits/stdc++.h> us ...
随机推荐
- hibernater-validator jar包冲突的问题
在引用hibernater-validator jar包时一直抛出异常,在引用带有该包的项目,或者同时在一个项目中使用该包和validator包都会抛出以下异常 最后发现是在Eclipse环境下,不能 ...
- java 发送微信客服消息
package com.baosight.wechat.service; import net.sf.json.JSONObject; import org.apache.commons.httpcl ...
- IOS_DatePicker_PickerView_SegmentControl_键盘处理
H:/0712/01_UIController_MJViewController.m // MJViewController.m // 01-总结复习 // Created by apple on 1 ...
- TI C66x DSP 四种内存保护问题 -之- 针对CPU訪问外存(DDR3 or MSM)时的内存保护问题 - 举例
在代码维护中遇到过这种问题,CPU訪问了corePac的外部内存空间0x75510C55地址,即CPU向corePac的L2内存控制器发起了对该内存的訪问,然后L2内存控制器将该请求发给corePac ...
- Android 非静态内部类导致内存泄漏原因深入剖析
背景 上周发现蘑菇街IM-Android代码里面.一些地方代码编写不当.存在内存泄漏的问题.在和疯紫交流的过程中.发现加深了一些理解,所以决定写一下分析思路,相互学习. 内存泄漏 一个不会被使用的对象 ...
- c++ builder 版CreateAnonymousThread用法
万一老师的<如今, Delphi 的多线程已经很易用了!>讲到了TThread.CreateAnonymousThread用法 如今我来讲在c++ builder使用 CreateAnon ...
- 何时使用Entity或DTO
关注公众号: 锅外的大佬 每日推送国外优秀的技术翻译文章,励志帮助国内的开发者更好地成长! JPA和Hibernate允许你在JPQL和Criteria查询中使用DTO和Entity作为映射.当我在我 ...
- Memory-mapped I/O vs port-mapped I/O
关于MMIO和PIO,我看到的解释最清楚的文章,原文在这里:Memory-mapped I/O vs port-mapped I/O - 2015 Microprocessors normally u ...
- dubbo 实战1
准备:先安装zookeeper,然后进入一下步骤 服务端 1.新建 maven项目 2.pom.xml 内容如下 <?xml version="1.0" encoding=& ...
- 图像处理之滤波---gabor
http://blog.csdn.net/xiaowei_cqu/article/details/24745945 小魏北大