【UVALive】3029 City Game(悬线法)
题目
传送门: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(悬线法)相关推荐
- 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 753 Solved: 444 [Submit][Status][Discuss] ...
- 【BZOJ-1127】KUP 悬线法 + 贪心
1127: [POI2008]KUP Time Limit: 10 Sec Memory Limit: 162 MBSec Special Judge Submit: 317 Solved: 1 ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
- [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵
https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...
- [ZJOI2007] 棋盘制作(单调栈 / DP悬线法)
problem 洛谷链接 solution1-单调栈 很容易想到,预处理出每个点向上最大能延伸的长度,然后对每个点求一个矩阵面积. 然后思考优化,不难想到每次对一行进行求解. 每一行的所有列一起构成了 ...
- 【BZOJ1057】【codevs1428】棋盘制作,悬线法
传送门1 传送门2 思路: 比较简单的悬线法 相关资料自行百度 看一会就能明白的 反正这个就是模板题啦(敲桌) 虽然说好不发水题了,但这次发上来也就是给大家也给自己当个板子使-- 代码: #inclu ...
- 最大子矩阵问题悬线法 学习小结
最近在写dp的题目 但是我这个同学又又又又生病了 学习了一下多叉树的背包问题和最大子矩阵的问题,还有攒了几道期望,先总结一下矩阵问题: 问题模型: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点 ...
- 2018.09.29 bzoj3885: Cow Rectangles(悬线法+二分)
传送门 对于第一个问题,直接用悬线法求出最大的子矩阵面积,然后对于每一个能得到最大面积的矩阵,我们用二分法去掉四周的空白部分来更新第二个答案. 代码: #include<bits/stdc++. ...
- bzoj 1057: 棋盘制作(悬线法)
1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 2311 Solved: 1146 [Submit][St ...
最新文章
- numpy shape函数
- flinksql获取系统当前时间搓_DNF:从剑魂角度看工作服,不仅不是地摊货,更是超越了手搓套...
- 002_FastDFS单机部署
- 人月神话之阅读笔记01
- python爬虫基础扫盲之URL
- 商业有规律,赚钱有方法,不要在盲目努力了
- VB 按指定编码格式写入文本文件
- hdu 1686(标准的kmp,可当模板)
- 南航计算机英语面试经验,南航面试英文自我介绍
- 入门:安装Python
- 计算机病毒是谁做的,第一个制造电脑病毒的人是谁?
- 从爆款单品到全屋智能 Aqara如何引领行业变革
- Paper Reading Notes
- Win7(老PC)Python环境搭建实战
- linux中可以使用以下命令查看文件内容,在Linux服务器中使用命令行中查看文件内容...
- MATLAB 信号与系统
- 英雄联盟怎么解除小窗口_英雄联盟:老玩家都不知道的小技巧,一定要注意这些细节|英雄联盟|召唤师|防御塔|新英雄|亚索...
- 智能家居混战再起,华为、海尔和小米谁能率先破局?
- 操作系统学习笔记——北京大学陈向群老师课后及习题答案(1)
- 笔记:FPGA与VHDL语言学习3