传送门:洛谷

题目描述:

这片土地被分成 N × M N\times M N×M 个格子,每个格子里写着 ‘R’ 或者 ‘F’,R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 freda。
现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着 ‘F’ 并且面积最大。
但是 rainbow 和 freda 的 OI 水平都弱爆了,找不出这块土地,而蓝兔也想看 freda 卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为 S,它们每人给你 S 两银子。

输入:
5 6
R F F F F F
F F F F F F
R R R F F F
F F F F F F
F F F F F F
输出:
45

在重新学悬线法时碰到了这一题.难度不大,随手写一篇题解

主要思路:

  1. 对于这道题我们其实只要将我们的记录我们的每一个位置向左和向右和它相同的连续的最远位置即可.并且还需要记录向上扩展的最远位置,大致解法与这道题基本上是一致的,可以参考那一篇的题解即可,此处就不在赘述了
  2. 对于与那道题不同的方面,我们对于此题需要特判一下F和R,假设我们碰到的是R直接跳过即可

并且注意,这道题的ans初始化需要为0才行,因为可能答案为0

下面是具体的代码部分:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <stack>
#include <deque>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define root 1,n,1
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
inline ll read() {ll x=0,w=1;char ch=getchar();for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') w=-1;for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';return x*w;
}
#define maxn 1000000
#define ll_maxn 0x3f3f3f3f3f3f3f3f
const double eps=1e-8;
int n,m;
int max_left[1010][1010],max_right[1010][1010];
int up_length[1010][1010];
int mp[1010][1010];
int main() {n=read();m=read();string a;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) {cin>>a;if(a[0]=='F') {mp[i][j]=1;}else {mp[i][j]=0;}max_left[i][j]=j;max_right[i][j]=j;up_length[i][j]=1;}}for(int i=1;i<=n;i++) {for(int j=2;j<=m;j++) {if(mp[i][j]==mp[i][j-1]) max_left[i][j]=max_left[i][j-1];}}for(int i=1;i<=n;i++) {for(int j=m-1;j>=1;j--) {if(mp[i][j]==mp[i][j+1]) max_right[i][j]=max_right[i][j+1];}}int ans=0;for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {if(mp[i][j]==0) continue; if(i>1&&mp[i][j]==mp[i-1][j]) {max_left[i][j]=max(max_left[i][j],max_left[i-1][j]);max_right[i][j]=min(max_right[i][j],max_right[i-1][j]);up_length[i][j]+=up_length[i-1][j];}int len=max_right[i][j]-max_left[i][j]+1;ans=max(ans,len*up_length[i][j]);}}cout<<ans*3<<endl;return 0;
}

刷题记录:洛谷P4147玉蟾宫相关推荐

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

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

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

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

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

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

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

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

  5. 洛谷 P4147 玉蟾宫

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

  6. 洛谷日常刷题(洛谷官方题单 思路+详解)

    目录 前言 非官方题单的题 P1141 01迷宫 1-4 递推与递归 P1255 数楼梯 1002 [ NOIP 2002 普及组]过河卒 P1044 [NOIP2003 普及组] 栈 P1028 [ ...

  7. 算法刷题【洛谷U193902】橡皮泥

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  8. 洛谷4147 玉蟾宫

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

  9. AC日记——小书童——刷题大军 洛谷 P1926

    题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人. 文言是火,点亮历史宫灯:历史是灯,照亮社会之路:社会是路,通向哲学大坑:哲学是坑,埋葬文科生 ...

最新文章

  1. 生信分析流程构建的几大流派
  2. 如何取消linux响铃_linux初学者入门:VIM编辑简易指南(常用操作)
  3. 打印100~200 之间的素数
  4. 关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?
  5. [css] 你知道css的预处理器和后处理器都有哪些吗?它们有什么区别呢?
  6. C/C++:Windows编程—代码实现IE保护模式的关闭和开启
  7. python paramiko远程执行命令打开窗口_使用Paramiko在远程机器上通过sshClient()执行本地python脚本...
  8. NIO与零拷贝和AIO
  9. Hibernate之load和get的差别
  10. [.net]c#登陆实现验证码-图形编程
  11. 用大数据挑选出国外最值得看的前50条swift教程(v.2019)
  12. 使用opencv实现简单的人脸识别
  13. FastStone Capture滚动截屏
  14. c语言时间换算结构体9,C语言实现时区转换函数的实例
  15. Navicat:Access violation at address xxxxxxxxx in module 'navicat.exe'.Read of address xxxxxx
  16. 性能测试从零开始(视频笔记 20210504)
  17. 分享一个转换pdf,PDF分割、指定页提取无需安装软件的方法
  18. 想象力的再突破!无人机后还有大招?!
  19. 软件工程师的核心竞争力是什么-笔记
  20. UnityShader——屏幕空间反射(一)

热门文章

  1. 怎么解决allegro单位转换后出现DRC错误
  2. 【漏洞复现】Zabbix弱口令再到命令执行Getshell
  3. 初学者之《复刻英雄联盟官网之人脸识别登录》②
  4. (六)通过pygame让游戏背景图像实现交替滚动
  5. 【精灵雪花特效】(HTML+JS+CSS+代码+效果)
  6. HTML常用的一些标签(推荐)
  7. SQL Server数据库SP命令祥解
  8. 在JavaScript中实现承诺
  9. 2021年中国帆船短裤市场趋势报告、技术动态创新及2027年市场预测
  10. matlab 替代品_MATLAB的4种开源替代品