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组成的最大子矩阵(面积最大) 有多组数据
优秀的暴力???
思路:枚举每个点 然后这个点可以往上延伸到最上的点 这两点为一根线 这根线左移移到最左可以到的地方 右边也是如此 然后算出面积
需要预处理出每个点往左延伸的最远点与往右延伸的最远点
code
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #define M 1010
5 #define go(i,a,b) for(register int i=a;i<=b;i++)
6 #define goo(i,a,b) for(register int i=a;i>=b;i--)
7 #define mem(i) memset(i,0,sizeof(i));
8 using namespace std;
9 int read()
10 {
11 char c; c=getchar(); while(c!='F'&&c!='R') c=getchar();
12 if(c=='F') return 1; return 2;
13 }
14 int map[M][M],l[M][M],r[M][M],u[M][M];
15 int m,n,ans,t;
16 void init()
17 {
18 go(i,1,m) go(j,2,n)
19 if(map[i][j]==1&&map[i][j-1]==1) l[i][j]=l[i][j-1];
20 go(i,1,m) goo(j,n-1,1)
21 if(map[i][j]==1&&map[i][j+1]==1) r[i][j]=r[i][j+1];
22 }
23 int main()
24 {
25 scanf("%d%d",&m,&n);
26 go(i,1,m) go(j,1,n)
27 {
28 map[i][j]=read();
29 if(map[i][j]==1) u[i][j]=1;
30 l[i][j]=j;r[i][j]=j;
31 }
32
33 init();
34
35 go(i,1,m) go(j,1,n)
36 {
37 if(i>1&&map[i][j]==1&&map[i-1][j]==1)
38 {
39 l[i][j]=max(l[i][j],l[i-1][j]);
40 r[i][j]=min(r[i][j],r[i-1][j]);
41 u[i][j]=u[i-1][j]+1;
42 }
43 ans=max(ans,(r[i][j]-l[i][j]+1)*u[i][j]);
44 }
45
46 printf("%d\n",ans*3);
47 return 0;
48 }
HDU1505 City Game 悬线法的更多相关文章
- [POJ1964]City Game (悬线法)
题意 其实就是BZOJ3039 不过没权限号(粗鄙之语) 同时也是洛谷4147 就是求最大子矩阵然后*3 思路 悬线法 有个博客讲的不错https://blog.csdn.net/u012288458 ...
- 【UVALive】3029 City Game(悬线法)
题目 传送门:QWQ 分析 以前见到过差不多的这题. xhk说是单调栈水题,但我又不会单调栈,于是当时就放下了. 这么久过去了我还是不会用单调栈做这题,用的是悬线法. 非常好写 代码 #include ...
- 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] 棋盘制作 &悬线法学习笔记
学习笔记 悬线法 最大子矩阵问题: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点的,边与整个矩形平行或重合的最大子矩形. 极大子矩型:无法再向外拓展的有效子矩形 最大子矩型:最大的一个有效子矩 ...
随机推荐
- Ubuntu下面 PHPSTORM2017.2破解方法
Ubuntu下面 PHPSTORM2017.2破解方法 下载破解文件 在 http://idea.lanyus.com/上面新下载一个破解文件. 破解步骤 将JetbrainsCrack-2.6.3_ ...
- Java并发编程中的设计模式解析(一)
Java并发编程,除了被用于各种Web应用.分布式系统和大数据系统,构成高并发系统的核心基础外,其本身也蕴含着大量的设计模式思想在里面.这一系列文章主要是结合Java源码,对并发编程中使用到的.实现的 ...
- mybatis的setting
在mybaits中,setting的的配置参数如下(如果不在配置文件中配置将使用默认值): 设置参数 描述 有效值 默认值 cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关 tr ...
- [二十七]SpringBoot 之 Restful接口的跨域请求
什么是跨域 简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求.比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz. ...
- MT【129】常数变易法
已知数列\(\{x_n\}\)满足\[x_{n+1}=\left(\dfrac 2{n^2}+\dfrac 3n+1\right)x_n+n+1,n\in\mathbf N^*,\]且\(x_1=3\ ...
- Linux nc命令用法收集
ps.ubuntu自带的nc是netcat-openbsd版,不带-c/-e参数. pss.在线Markdown编辑器的bug是怎么回事...“#”号依然显示着 ##参数 想要连接到某处: nc [- ...
- 【比赛】NOIP2017 奶酪
开始看到题以为是计算几何,后面发现不是,然后秒掉了. 可能写SPFA写多了,别人都是并查集做的,我用的是SPFA. 不过无所谓,我们把题目中的下底面和上表面看成两个点,那么就是求这两个点的连通性,如果 ...
- 学习Spring Boot:(六) 集成Swagger2
前言 Swagger是用来描述和文档化RESTful API的一个项目.Swagger Spec是一套规范,定义了该如何去描述一个RESTful API.类似的项目还有RAML.API Bluepri ...
- 【转】一口气读懂NB-IoT
在过去的一年多,NB-IoT真的可以说是大红大紫.在通信圈里,除了说5G,就是说物联网.如果说物联网,八成就是在说NB-IoT. 在目前5G还没来的情况下,NB-IoT基本上是独领风骚.风光无限. 各 ...
- 使用SUID二进制文件进行Linux权限升级技巧
0x00 基础知识 众所周知,在Linux中一切都以文件存在,包括具有允许或限制三个执行操作(即读/写/执行)权限的目录和设备.因此,当给任何文件设置权限时,应该需要了解允许的Linux用户或限制 ...