[单调栈]「Poetize4」玉蟾宫

洛谷P4147 玉蟾宫(单调栈解决) 题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 题目描述 这片土地被分成 N\times MN×M 个格子,每个格子里写着 ‘R’ 或者 ‘F’,R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 freda。 现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这... 阅读详情
背景 Background
有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。
描述 Description
这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。
现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着'F'并且面积最大。
但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为S,它们每人给你S两银子。
输入格式 Input Format
第一行两个整数N,M,表示矩形土地有N行M列。
接下来N行,每行M个用空格隔开的字符'F'或'R',描述了矩形土地。
输出格式 Output Format
输出一个整数,表示你能得到多少银子,即(3*最大'F'矩形土地面积)的值。
样例输入 Sample Input [复制数据]

样例输出 Sample Output [复制数据]

时间限制 Time Limitation
各个测试点1s
注释 Hint
对于50%的数据,1<=N,M<=200

对于100%的数据,1<=N,M<=1000


开始以为与usaco上的题目类似。

后来一看发现是矩形而不是正方形。。

于是就不会了。。。。。。

然后看了题解。写了这题。

学习了一种叫做单调栈的东西。。


官方题解地址http://hi.baidu.com/lydrainbowcat/item/a9759603f6d6a9e3fe240dc5


var i,j,n,m,ans:longint;
    s,l,h:array[0..1000]of longint;
    f:array[0..1000,0..1000]of longint;
    ch:char;

procedure work(k:longint);
var i,j,top,len,max:longint;
begin
    for i:=1 to m do h[i]:=f[k,i];
    fillchar(s,sizeof(s),0);
    for i:=1 to m do l[i]:=0;
    top:=0;s[top]:=0;l[top]:=0;max:=0;
    for i:=1 to m do
    begin
        if h[i]>=s[top] then
        begin
            inc(top);
            s[top]:=h[i];
            l[top]:=1;
        end
        else
        begin
            len:=0;
            while (top>0)and(s[top]>h[i]) do
            begin
                len:=len+l[top];
                if max<len*s[top] then max:=len*s[top];
                dec(top);
            end;
            inc(top);
            s[top]:=h[i];
            l[top]:=len+1;
        end;
    end;
    len:=0;
    while (top>0) do
    begin
        len:=len+l[top];
        if max<len*s[top] then max:=len*s[top];
        dec(top);
    end;
    if ans<max then ans:=max;
end;

begin
   fillchar(f,sizeof(f),0);
   readln(n,m);
   for i:=1 to n do
   for j:=1 to m do
   begin                    
       repeat read(ch);
       until (ch='F')or(ch='R');
       if ch='F' then f[i,j]:=f[i-1,j]+1
       else f[i,j]:=0;
   end;

   ans:=0;
   for i:=1 to n do
   work(i);
   writeln(3*ans);
   readln;readln;
end.



【bzoj3039】玉蟾宫 悬线法(单调栈) Description有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。 现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。 但是rainbow和fr 阅读详情

相关推荐

最大子矩阵问题&悬线法 学习笔记

幽人竹桑园,归卧寂无喧。 物情今已见,从此欲无言。 ——少伯

zyf2000 6603

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

原题地址 蛤,今天正好学习一下悬线dp,写了个板子题。 用l[i][j]l[i][j]l[i][j]表示能延伸的最左的位置的列,r[i][j]r[i][j]r[i][j]表示能掩上的最右位置的列,up[i][j]up[i][j]up[i][j]表示向上扩展最大长度。 不难得到: 若a[i][j]==F且a[i][j−1]==Fl[i][j]=l[i][j−1]若a[i][j]==F且a[i][j+...

woshidalaocxy的博客 502

C++实战:基于ONNX Runtime与OpenCV部署XFeat图像匹配模型

本文详细介绍了在C++环境中,利用ONNX Runtime与OpenCV高效部署XFeat图像匹配模型的完整流程。内容涵盖环境搭建、模型转换、核心代码封装及可视化实现,旨在帮助开发者将这一先进的深度学习模型集成到对性能要求苛刻的工业或嵌入式应用中,实现鲁棒且快速的特征匹配。

gpu4optimizer的博客 522

「单调栈」城市游戏(玉蟾宫)

城市游戏(玉蟾宫) 原题链接:城市游戏 题目大意 给你\(n \times m\)个格子,每个格子上有'R'或'F',现在要找一块矩形土地,使这片土地都标有'F'且面积最大,让你求出这个最大面积并\(\times3\)输出 题目题解 面积最大,且为矩形,爆搜可以考虑一下,但爆搜肯定是超时的(话说有些题库\(n^3\)竟然能过?!),在爆搜的时候我们能得到的一个信息就是,如果以某一高度开始...

bachayou2102的博客 228

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1648

避坑指南:在Ubuntu 22.04上配置UR5e与ROS2 Humble真机通信的完整流程

本文详细介绍了在Ubuntu 22.04上配置UR5e机械臂与ROS2 Humble真机通信的完整流程,包括环境准备、网络配置、URCap安装、ROS2驱动部署及控制器状态验证等关键步骤。特别针对常见问题如网络连接失败、驱动启动错误等提供了实用解决方案,帮助工程师高效完成UR5e与ROS2的集成工作。

weixin_30790841的博客 463

打卡信奥刷题(2810)用C++实现信奥题 P4147 玉蟾宫

本文介绍了解决玉蟾宫问题的算法。题目要求在N×M的网格中找出全由'F'组成的最大矩形面积。解法使用动态规划预处理每列连续的'F'高度,然后对每行应用单调栈算法求最大矩形面积。核心思路是:1)预处理f[i][j]表示从(i,j)向上连续的'F'数量;2)对每行使用单调栈计算当前行的最大矩形面积;3)最终结果为全局最大值乘以3。该算法时间复杂度为O(NM),适用于1000×1000的数据规模。文章提供了完整的C++实现代码,并展示了样例输入输出。

Loge谈信奥--一个专注于信奥人的博客 324

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 Var 变量篇】

例如我们已经知道一个符号(可能是变量或者函数)的地址,怎么确定这个地址是一个变量还是一个函数呢?如果是变量的话,变量名是啥?变量定义的位置在哪?如果是函数,函数名是啥?函数定义的位置又在哪呢?查看结构体变量 str_t32 的值。例如我们已经知道了一个符号的地址为。在map文件中的地址为。

CodingCos的博客 2349

P4147 玉蟾宫

在一次出栈时即可找到第一个比当前数小的数的位置,以及最后一个比当前数小的数的位置。确实是我经过反复碰壁+看题解后两个月后自己写出来的。一次入栈出栈就解决问题不用从另一个方向遍历第二次。

2403_86822944的博客 325

OpenClaw安卓手机攻略

想在安卓手机上安装 OpenClaw,目前主要有两种主流方法:一种是使用专门的,操作简单直观;另一种是在命令行环境下进行,自由度更高。你可以根据自己的偏好和动手能力来选择。

suny8的专栏 2900

微信小程序、H5微信公众号网页JSAPI:解决报错requestMerchantTransfer:fail:internal error(使用wx.requestMerchantTransfer错误)

如何解决requestMerchantTransfer:fail:internal error,微信小程序wx.requestMerchantTransfer报错,微信公众号H5网页使用jssdk调用wx.requestMerchantTransfer报错,JSAPI调起用户确认收款报错errMsg:“requestMerchantTransfer:fail:internal error“,微信小程序/H5 调起确认收款界面,JSAPI调起用户确认收款,微信公众号(H5),用户发起提现,商家转账给用户,用户

✅ 精选推荐文章 4967

Poetize4 玉蟾宫

题目大意:给你一个N行M列的地,每块地上有R或F,求这个图中最大的由F构成的矩形面积 n,m 这道题,如果给定你矩形的下底所在的行,那么我们就用一个单调栈维护,即可,然后枚举矩形的下底所在的行 O(n^2) #include #include const int maxn=1010; using namespace std; inline int max(int a,int b

wmj的专栏 1402

PD详解 扩展消息——Source_Capabilities_Extended Message

PD的协议层分为控制消息,数据消息还有扩展消息,今天大师匈讲一下扩展消息中的source_cap_extended。这个消息在扩展消息中算是比较关键的东西。 扩展消息中的source_cap_extended 大师匈先上图,然后逐一解释; 上面的图表说了source_cap_ext中包含了哪些内容。 我们注意到在source_cap扩展消息中是以字节为单位的,并不是像source_cap中以一个object为单位,当然有注意到PD标准spec中说明的扩展消息的话,那里有说明,在header之后的字节

大师匈的博客 3516

Tyvj P1939「Poetize4」玉蟾宫

单调栈

依然一笑作春温。 656

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TYVJ 1939 「Poetize4」玉蟾宫

单调栈

Orion_Rigel 566

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【洛谷】P4147 玉蟾宫 解题报告

【洛谷】P4147 玉蟾宫 解题报告 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 题目描述 这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。 现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积...

hanserdaisuki的博客 767

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Luogu4147 玉蟾宫(单调栈求解最大子矩阵)

原题链接:https://www.luogu.com.cn/problem/P4147 玉蟾宫 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 题目描述 这片土地被分成 N×MN\times MN×M 个格子,每个格子里写着 ‘R’ 或者 ‘F’,R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 freda。 现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着 ‘F’ 并且

ShadyPi的IT笔记 610

悬线法(二维贡献法)——玉蟾宫

题目来源:https://www.luogu.com.cn/problem/P4147。

m0_60738889的博客 972

玉蟾宫-单调栈

玉蟾宫-单调栈 题目描述 题解 单调栈 一列一列地扫过去,维护每一行从当前列向左得到的最长‘F’串的长度,然后问题就转化为了求柱状图中最大的矩形面积.(注意单调栈的实现最后一定再加入一个额外的元素,把栈内所用东西弹出以更新答案) 代码实现 #include<bits/stdc++.h> #define M 1009 using namespace std; int n,m,head,...

Daniel__d的博客 296

玉蟾宫

题目描述 Description   有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。   这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。   现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着'F'并且

Rookie的博客 1273

玉蟾宫【洛谷P4147】

题目描述 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 这片土地被分成NM个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。 现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。但是rainbow和freda的OI水平都弱...

ESTHERWXY的博客 396

[BZOJ 3039]玉蟾宫:单调栈

点击这里查看原题单调栈模板题,注意答案要乘3。/* User:Small Language:C++ Problem No.:3039 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=1e3+5; int a[M][M],s[M],l[M],tp

SmallSXJ的博客 497

【BZOJ】3039: 玉蟾宫(DP/单调栈)

http://www.lydsy.com/JudgeOnline/problem.php?id=3039 每次看到我的提交都有点淡淡的忧伤T_T。。 看到此题我想到用前缀和维护点ij向左和向上能拓展的最大长度,然后设状态f(i, j, 0)表示ij这个点为最大矩形的右下角时的长(横的),f(i, j, 1)表示ij这个店为最大矩形右下角时的宽(竖的),然后决策就是取点(i-1, ...

169

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

题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 题目描述 这片土地被分成 N×MN\times MN×M 个格子,每个格子里写着 ‘R’ 或者 ‘F’,R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 freda。 现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着 ‘F’ 并且面积最大。 但是 rainbow 和 freda 的 OI 水平都弱爆了,找不出这块土地,而蓝兔

memcpy0的博客 606
上一篇: Vijos模拟赛
下一篇: [动态规划]花店橱窗 线性动归
UtralK
博客等级 码龄14年 3粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值