https://www.luogu.org/problemnew/show/P4147#sub

土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。

现在freda要找一块矩形土地,要求这片土地都标着'F'并且面积最大。

输出最大面积*3。

请食用王知昆论文:http://blog.csdn.net/twtsa/article/details/8120269,和洛谷第一篇题解。

代码参自洛谷第一篇题解,然而那篇题解多了两个无用数组。

这里使用的是算法2(也叫悬线法)

#include<cstdio>
#include<queue>
#include<cctype>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
const int N=1010;
inline char getc(){char ch=getchar();while(ch!='R'&&ch!='F')ch=getchar();return ch;
}
int n,m,ans,mp[N][N],h[N][N],l[N][N],r[N][N];
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){char ch=getc();mp[i][j]=(ch=='F');}}for(int i=1;i<=n;i++){int t=0;for(int j=1;j<=m;j++){if(mp[i][j])l[i][j]=t;else l[i][j]=0,t=j;}t=m+1;for(int j=m;j>=1;j--){if(mp[i][j])r[i][j]=t;else r[i][j]=m+1,t=j;}}for(int i=1;i<=m+1;i++)r[0][i]=m+1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(mp[i][j]){h[i][j]=h[i-1][j]+1;l[i][j]=max(l[i][j]+1,l[i-1][j]);r[i][j]=min(r[i][j]-1,r[i-1][j]);ans=max(ans,(r[i][j]-l[i][j]+1)*h[i][j]);}}}printf("%d\n",3*ans);return 0;
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/8523073.html

洛谷4147:玉蟾宫——题解相关推荐

  1. 洛谷4147 玉蟾宫

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

  2. 洛谷 P4147 玉蟾宫 题解【悬线dp】

    原题地址 蛤,今天正好学习一下悬线dp,写了个板子题. 用 l [ i ] [ j ] l[i][j] l[i][j]表示能延伸的最左的位置的列, r [ i ] [ j ] r[i][j] r[i] ...

  3. 刷题记录:洛谷P4147玉蟾宫

    传送门:洛谷 题目描述: 这片土地被分成 N × M N\times M N×M 个格子,每个格子里写着 'R' 或者 'F',R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 fr ...

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

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

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

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

  6. 洛谷 P4147 玉蟾宫 P1169 [ZJOI2007]棋盘制作(求最大子矩阵)

    题目: P4147 玉蟾宫: https://www.luogu.org/problemnew/show/P4147  P1169 [ZJOI2007]棋盘制作: https://www.luogu. ...

  7. 洛谷 P4147 玉蟾宫

    这好像是一道悬线法的题目,但是我不会,只能用单调栈水过了 我们将ai,ja_{i,j}ai,j​定义为从(i,j)(i,j)(i,j)出发向上(坐标减小)可以达到的最长的.没有R的路径 比如说样例 5 ...

  8. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  9. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  10. 洛谷P1273 有线电视网 题解

    洛谷P1273 有线电视网 题解 题目链接:P1273 有线电视网 题意: 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为 ...

最新文章

  1. PyCharm 2018 for mac 数据库实战:链接SQLite、建表、添加、查询数据
  2. 数据加密和OpenSSL
  3. boost::spirit模块实现使用迭代器位置注释 AST的测试程序
  4. POJ 2114 - Boatherds
  5. SAP Spartacus 如何使用 cypress 进行端到端自动化测试
  6. Kubernetes—常用命令总结(二)
  7. 用 Ansible 实现基于 OpenShift (Kubernetes) 的 DevOps
  8. 2016年1月20日总结
  9. 本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件。
  10. Redis单台的安装部署及集群部署
  11. hadoop和spark相关参数的配置
  12. .pth.tar文件
  13. Java游戏开发——flappy bird
  14. 笔记本电脑用u盘一键重装系统步骤
  15. [配置] 安卓 | 将微信公众号文章保存到Notion
  16. process on画流程图和思维导图总结
  17. 《实用回归分析》 何晓群 第五章
  18. 《哪吒之魔童降世》席卷全球!用Python数据分析告诉你为什么这么火
  19. 【迅为iMX6Q】开发板烧写Uboot后串口无任何输出的问题解决
  20. C++程序设计基础 小母牛问题

热门文章

  1. php mysql用户登录_php mysql实现用户登录功能的代码示例
  2. php 安装rabbitmq拓展_【RabbitMQ】——centos7安装rabbitmq教程 以及 PHP开启rabbitmq扩展...
  3. 计算机二级的考试c模板,2013年9月全国计算机等级《二级C++》上机模考试卷(5)
  4. android textview 设置字体,Android TextView设置字体风格
  5. 第十六届智能车竞赛线上全国总决赛远程组委会监督腾讯会议
  6. 第十六届全国大学生智能车竞赛赛道审核 - 东北赛区第三批赛道审核
  7. 聚沙成塔 : 第十六届智能车竞赛规则你一言,我一语
  8. python调用c#注意事项_python 调用c# 超级直接示例
  9. php flock 死锁了,php – 防止由flock引起的死锁
  10. python统计文件行数检测字符串_python统计文件中的字符串数目示例