题意

其实就是BZOJ3039 不过没权限号(粗鄙之语)

同时也是洛谷4147

就是求最大子矩阵然后*3

思路

悬线法

有个博客讲的不错https://blog.csdn.net/u012288458/article/details/48197727

GREED-VI大佬之前也讲过,友链一下https://www.cnblogs.com/GREED-VI/p/9887399.html (他说的其实是悬线法,扫描线和这个不一样的吧)

代码

水水水

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define N 1005
using namespace std;
int n,m;
int ans;
int up[N][N],L[N][N],R[N][N];
pair<int,int> st[N];
bool v[N][N],f_fall;
void init()
{
char ch;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin>>ch;
v[i][j]=(ch=='F'?:);
if(v[i][j]) f_fall=;
}
}
void solve()
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(!v[i][j])
up[i][j]=;
else up[i][j]=up[i-][j]+;
for (int i=;i<=n;i++)
{
int top=;
st[++top]=make_pair(-,);
for (int j=;j<=m;j++)
{
while (up[i][j]<=st[top].first) top--;
L[i][j]=j-st[top].second-;
st[++top]=make_pair(up[i][j],j);
}
}
for (int i=;i<=n;i++)
{
int top=;
st[++top]=make_pair(-,m+);
for (int j=m;j>=;j--)
{
while (up[i][j]<=st[top].first) top--;
R[i][j]=st[top].second-j-;
st[++top]=make_pair(up[i][j],j);
}
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
ans=max(ans,(L[i][j]+R[i][j]+)*up[i][j]);
ans*=;
}
int main()
{
//freopen("cpp.in","r",stdin);
//freopen("cpp.out","w",stdout);
int Q;scanf("%d",&Q);
while(Q--)
{
f_fall=;
init();
if(f_fall==) printf("0\n");
else{
solve();
printf("%d\n",ans);
ans=;
memset(v,,sizeof(v));
memset(up,,sizeof(up));
memset(L,,sizeof(L));
memset(R,,sizeof(R));
memset(st,,sizeof(st));
}
}
return ;
}

[POJ1964]City Game (悬线法)的更多相关文章

  1. 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组成的最大子矩阵(面积最大) 有多组数 ...

  2. 【UVALive】3029 City Game(悬线法)

    题目 传送门:QWQ 分析 以前见到过差不多的这题. xhk说是单调栈水题,但我又不会单调栈,于是当时就放下了. 这么久过去了我还是不会用单调栈做这题,用的是悬线法. 非常好写 代码 #include ...

  3. City Game UVALive - 3029(悬线法求最大子矩阵)

    题意:多组数据(国外题好像都这样),每次n*m矩形,F表示空地,R表示障碍 求最大子矩阵(悬线法模板) 把每个格子向上延伸的空格看做一条悬线 以le[i][j],re[i][j],up[i][j]分别 ...

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

    1127: [POI2008]KUP Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 317  Solved: 11 ...

  5. 【BZOJ-3039&1057】玉蟾宫&棋盘制作 悬线法

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

  6. BZOJ_3039_玉蟾宫_(动态规划+悬线法)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3039 n*m的矩阵由R和F组成,求全是F的子矩阵的大小的三倍. 分析 悬线法: 浅谈用极大化思 ...

  7. 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)) ...

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

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

  9. [P1169] 棋盘制作 &悬线法学习笔记

    学习笔记 悬线法 最大子矩阵问题: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点的,边与整个矩形平行或重合的最大子矩形. 极大子矩型:无法再向外拓展的有效子矩形 最大子矩型:最大的一个有效子矩 ...

随机推荐

  1. #1 macos和windows下对多Python环境配置的记录

    为啥会发现环节配置的问题 因为scrapy的setting前期走弯路的时候,碰到了修改了Windows下的Python中的scrapy的默认setting,但是我电脑上还有anaconda,而且我是使 ...

  2. AngularJs的基本使用(一)

    AngularJS 指令 AngularJS 通过 ng-directives 扩展了 HTML,AngularJS 指令是以 ng 作为前缀的 HTML 属性. ng-app 指令定义一个 Angu ...

  3. WordPress Plugin Contact Form Builder [CSRF → LFI]

    # Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...

  4. Collections -- OrderedDict类

    普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...

  5. list转换string

    方法1 "".join 若list中为字符型 str = "".join(list) >>> L=['a','b','c'] >> ...

  6. httpClient closeableHttpClient

    https://www.cnblogs.com/lyy-2016/p/6388663.html

  7. 转:Spring历史版本变迁和如今的生态帝国

    Spring历史版本变迁和如今的生态帝国     版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/bntX2jSQfEHy7/article/deta ...

  8. Rollup.js 实践

    音乐分享: B.o.B Ft. Marko Penn - <Roll up> ——————————————————————————————————————————————————————— ...

  9. anacoda报错No module named 'sklearn.cross_validation'

    在目前的snacoda里集成的sklearn已经不存在cross_validation模块了 使用以下模块 from  sklearn.model_selection  import train_te ...

  10. vue 统一处理token失效问题

    使用http response 拦截器 在main.js中添加 import axios from 'axios'; axios.interceptors.response.use(response ...