题目

传送门:QWQ

分析

以前见到过差不多的这题。

xhk说是单调栈水题,但我又不会单调栈,于是当时就放下了。

这么久过去了我还是不会用单调栈做这题,用的是悬线法。

非常好写

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1005;
int up[maxn][maxn], left[maxn][maxn], right[maxn][maxn], A[maxn][maxn];
int main(){int T; scanf("%d",&T);while(T--){memset(up,0,sizeof(up));memset(left,0,sizeof(left));memset(right,0,sizeof(right));memset(A,0,sizeof(A));int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){char s[5]; scanf("%s",s);if(s[0]=='F') A[i][j]=1;}int ans=0;for(int i=1;i<=n;i++){int lo=0, ro=m+1;left[i][1]=1; right[i][m]=m;for(int j=1;j<=m;j++)if(!A[i][j]){up[i][j]=left[i][j]=0;lo=j;}else{up[i][j]=up[i-1][j]+1; if(i==1) left[i][j]=lo+1; else left[i][j]=max(left[i-1][j],lo+1);}for(int j=m;j>=1;j--)if(!A[i][j]) ro=j,right[i][j]=m;else{if(i==1) right[i][j]=ro-1; else right[i][j]=min(right[i-1][j],ro-1);ans=max(ans,up[i][j]*(right[i][j]-left[i][j]+1));//    if(ans==up[i][j]*(right[i][j]-left[i][j]+1)) printf("-----  %d %d %d %d %d\n",i,j,up[i][j],left[i][j],right[i][j]);
                }}printf("%d\n",ans*3);}return 0;
}
/*
2
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
5 5
R R R R R
R R R R R
R R R R R
R R R R R
R R R R R
2
5 6
R F F F F F
F F F F R F
R R R F F F
F F F F R F
F F F F F F
5 5
R R R R R
R F R R R
R R R F R
R R R R R
R F R R R
*/

转载于:https://www.cnblogs.com/noblex/p/9223548.html

【UVALive】3029 City Game(悬线法)相关推荐

  1. 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 753  Solved: 444 [Submit][Status][Discuss] ...

  2. 【BZOJ-1127】KUP 悬线法 + 贪心

    1127: [POI2008]KUP Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special Judge Submit: 317  Solved: 1 ...

  3. BZOJ 3039: 玉蟾宫( 悬线法 )

    最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...

  4. [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵

    https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...

  5. [ZJOI2007] 棋盘制作(单调栈 / DP悬线法)

    problem 洛谷链接 solution1-单调栈 很容易想到,预处理出每个点向上最大能延伸的长度,然后对每个点求一个矩阵面积. 然后思考优化,不难想到每次对一行进行求解. 每一行的所有列一起构成了 ...

  6. 【BZOJ1057】【codevs1428】棋盘制作,悬线法

    传送门1 传送门2 思路: 比较简单的悬线法 相关资料自行百度 看一会就能明白的 反正这个就是模板题啦(敲桌) 虽然说好不发水题了,但这次发上来也就是给大家也给自己当个板子使-- 代码: #inclu ...

  7. 最大子矩阵问题悬线法 学习小结

    最近在写dp的题目 但是我这个同学又又又又生病了 学习了一下多叉树的背包问题和最大子矩阵的问题,还有攒了几道期望,先总结一下矩阵问题: 问题模型: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点 ...

  8. 2018.09.29 bzoj3885: Cow Rectangles(悬线法+二分)

    传送门 对于第一个问题,直接用悬线法求出最大的子矩阵面积,然后对于每一个能得到最大面积的矩阵,我们用二分法去掉四周的空白部分来更新第二个答案. 代码: #include<bits/stdc++. ...

  9. bzoj 1057: 棋盘制作(悬线法)

    1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 2311  Solved: 1146 [Submit][St ...

最新文章

  1. numpy shape函数
  2. flinksql获取系统当前时间搓_DNF:从剑魂角度看工作服,不仅不是地摊货,更是超越了手搓套...
  3. 002_FastDFS单机部署
  4. 人月神话之阅读笔记01
  5. python爬虫基础扫盲之URL
  6. 商业有规律,赚钱有方法,不要在盲目努力了
  7. VB 按指定编码格式写入文本文件
  8. hdu 1686(标准的kmp,可当模板)
  9. 南航计算机英语面试经验,南航面试英文自我介绍
  10. 入门:安装Python
  11. 计算机病毒是谁做的,第一个制造电脑病毒的人是谁?
  12. 从爆款单品到全屋智能 Aqara如何引领行业变革
  13. Paper Reading Notes
  14. Win7(老PC)Python环境搭建实战
  15. linux中可以使用以下命令查看文件内容,在Linux服务器中使用命令行中查看文件内容...
  16. MATLAB 信号与系统
  17. 英雄联盟怎么解除小窗口_英雄联盟:老玩家都不知道的小技巧,一定要注意这些细节|英雄联盟|召唤师|防御塔|新英雄|亚索...
  18. 智能家居混战再起,华为、海尔和小米谁能率先破局?
  19. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(1)
  20. 笔记:FPGA与VHDL语言学习3

热门文章

  1. 超强一代JupyterLab发布,可视化调试、中文显示、简单交互界面
  2. php com(),php|luosimao.com文档中心
  3. 深度强化学习-Policy Gradient基本实现
  4. 过拟合解决方法之L2正则化和Dropout
  5. 庞特里亚金最小值原理求解能耗最小化的时间最优OBVP问题
  6. 关于分辨率和地图打印的一些问题
  7. Java 线程之间通信
  8. Soft NMS论文笔记
  9. 2018年网络规划设计师上午真题及答案解析
  10. 小汤学编程之JAVA基础day05——数组