【UVALive】3029 City Game(悬线法)
题目
传送门:QWQ
分析
以前见到过差不多的这题。
xhk说是单调栈水题,但我又不会单调栈,于是当时就放下了。
这么久过去了我还是不会用单调栈做这题,用的是悬线法。
非常好写
代码
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=;
int up[maxn][maxn], left[maxn][maxn], right[maxn][maxn], A[maxn][maxn];
int main(){
int T; scanf("%d",&T);
while(T--){
memset(up,,sizeof(up));memset(left,,sizeof(left));memset(right,,sizeof(right));memset(A,,sizeof(A));
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
char s[]; scanf("%s",s);
if(s[]=='F') A[i][j]=;
}
int ans=;
for(int i=;i<=n;i++){
int lo=, ro=m+;
left[i][]=; right[i][m]=m;
for(int j=;j<=m;j++)
if(!A[i][j]){up[i][j]=left[i][j]=;lo=j;}
else{
up[i][j]=up[i-][j]+; if(i==) left[i][j]=lo+; else left[i][j]=max(left[i-][j],lo+);
}
for(int j=m;j>=;j--)
if(!A[i][j]) ro=j,right[i][j]=m;
else{
if(i==) right[i][j]=ro-; else right[i][j]=min(right[i-][j],ro-);
ans=max(ans,up[i][j]*(right[i][j]-left[i][j]+));
// 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*);
}
return ;
}
/*
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
*/
【UVALive】3029 City Game(悬线法)的更多相关文章
- [POJ1964]City Game (悬线法)
题意 其实就是BZOJ3039 不过没权限号(粗鄙之语) 同时也是洛谷4147 就是求最大子矩阵然后*3 思路 悬线法 有个博客讲的不错https://blog.csdn.net/u012288458 ...
- HDU1505 City Game 悬线法
题意: 给出一个像这样的矩阵 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 求F组成的最大子矩阵(面积最大) 有多组数 ...
- City Game UVALive - 3029(悬线法求最大子矩阵)
题意:多组数据(国外题好像都这样),每次n*m矩形,F表示空地,R表示障碍 求最大子矩阵(悬线法模板) 把每个格子向上延伸的空格看做一条悬线 以le[i][j],re[i][j],up[i][j]分别 ...
- 【BZOJ-1127】KUP 悬线法 + 贪心
1127: [POI2008]KUP Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 317 Solved: 11 ...
- 【BZOJ-3039&1057】玉蟾宫&棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 753 Solved: 444[Submit][Status][Discuss] D ...
- BZOJ_3039_玉蟾宫_(动态规划+悬线法)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3039 n*m的矩阵由R和F组成,求全是F的子矩阵的大小的三倍. 分析 悬线法: 浅谈用极大化思 ...
- BZOJ 1057: [ZJOI2007]棋盘制作( dp + 悬线法 )
对于第一问, 简单的dp. f(i, j)表示以(i, j)为左上角的最大正方形, f(i, j) = min( f(i + 1, j), f(i, j + 1), f(i + 1, j + 1)) ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
- [P1169] 棋盘制作 &悬线法学习笔记
学习笔记 悬线法 最大子矩阵问题: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点的,边与整个矩形平行或重合的最大子矩形. 极大子矩型:无法再向外拓展的有效子矩形 最大子矩型:最大的一个有效子矩 ...
随机推荐
- dubbo 之filter使用
1.继承接口com.alibaba.dubbo.rpc.Filter实现public Result invoke(Invoker<?> invoker, Invocation invoca ...
- swift metal ios8 关键字.
swift metal ios8 关键字. 4000API. 无所谓谁打败谁吧. 行业内用户用的多 资源多 问题容易解决. 今年明显unity 火热程度非常. 然,万变不离其中. 对于游戏产品来说, ...
- Android中的sp和wp指针
经常会在android的framework代码中发现sp<xxx>和wp<xxx>这样的指针,平时看的时候都把他当成一个普通的指针封装过掉了,这几天终于忍不住了,想深入了解一下 ...
- keras channels_last、preprocess_input、全连接层Dense、SGD优化器、模型及编译
channels_last 和 channels_first keras中 channels_last 和 channels_first 用来设定数据的维度顺序(image_data_format). ...
- 【解题报告】CF Round #320 (Div. 2)
Raising Bacteria 题意:盒子里面的细菌每天会数量翻倍,你可以在任意一天放任意多的细菌,最后要使得某天盒子里面的细菌数量等于x,求至少要放多少个细菌 思路:显然,翻倍即为二进制左移一位, ...
- BZOJ3594: [Scoi2014]方伯伯的玉米田【二维树状数组优化DP】
Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感 ...
- 利用 TypeConverter,转换字符串和各种类型只需写一个函数
本文代码基于 .NET Framework 实现. 本来只想进行简单的配置存储的,不料发现 .NET 的基本类型多达十多种.于是,如果写成下面这样,那代码可就太多了哦: // 注:`Configura ...
- python,java操作mysql数据库,数据引擎设置为myisam时能够插入数据,转为innodb时无法插入数据
今天想给数据库换一个数据引擎,mysiam转为 innodb 结果 python 插入数据时失败,但是自增id值是存在的, 换回mysiam后,又可以插入了~~ 想换php插入试试,结果php数据引擎 ...
- WinForm窗体继承自定义的模板窗体出错
在开发Winform程序的时候,我们往往需要根据需要做一些自定义的控件模块,这样可以给系统模块重复利用,或者实现更好的效果等功能.而今天自定义一个窗体,然后子窗体继承的时候出现了一点问题. 问题: 在 ...
- php中strstr、strchr、strrchr、substr、stristr
一.strstr 和 strcchr的区别 strstr 显示第一次找到,要查找的字符串,以及后面的字符串. strrchr 显示最后一次找到,要查找的字符串,以及后面的字符串. 二.strstr ...