BZOJ 3039: 玉蟾宫【dp】
Description
有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。
这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。
现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着'F'并且面积最大。
但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为S,它们每人给你S两银子。
Input
第一行两个整数N,M,表示矩形土地有N行M列。
接下来N行,每行M个用空格隔开的字符'F'或'R',描述了矩形土地。
Output
输出一个整数,表示你能得到多少银子,即(3*最大'F'矩形土地面积)的值。
Sample Input
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
Sample Output
45
HINT
对于50%的数据,1<=N,M<=200
对于100%的数据,1<=N,M<=1000
思路:最大子矩阵,貌似这是第三次敲了TUT 数据水到没用滚动数组也能A
//bzoj3039
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <queue>
#define maxn 2000
#define com 100005
using namespace std;
char ch[10];
bool map[maxn][maxn];
int up[maxn][maxn],lef[maxn][maxn],righ[maxn][maxn];
int main()
{
int n,m,ans=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%s",ch);
if(ch[0]=='F')map[i][j]=1;else {map[i][j]=0;righ[i][j]=m+1;}
}
}
for(int i=1;i<=m;i++)righ[0][i]=m;
for(int i=1;i<=n;i++)
{
int la=0;
for(int j=1;j<=m;j++)if(map[i][j]==1)
{
up[i][j]=up[i-1][j]+1;
lef[i][j]=max(la+1,lef[i-1][j]);
}
else la=j;
la=m+1;
for(int j=m;j>=1;j--)
{
if(map[i][j]==1)
righ[i][j]=min(la-1,righ[i-1][j]);
else la=j;
ans=max(ans,(righ[i][j]-lef[i][j]+1)*up[i][j]);
}
}
printf("%d\n",ans*3);
return 0;
}
BZOJ 3039: 玉蟾宫【dp】的更多相关文章
- BZOJ 3039: 玉蟾宫
		3039: 玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个 ... 
- BZOJ 3039: 玉蟾宫( 悬线法 )
		最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ... 
- bzoj 3039: 玉蟾宫 单调栈或者悬线法求最大子矩阵和
		3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 有一天,小猫rainbow ... 
- 【BZOJ】3039: 玉蟾宫(DP/单调栈)
		http://www.lydsy.com/JudgeOnline/problem.php?id=3039 每次看到我的提交都有点淡淡的忧伤T_T.. 看到此题我想到用前缀和维护点ij向左和向上能拓展的 ... 
- 【BZOJ】3039: 玉蟾宫 悬线法
		[题意]给定01矩阵,求最大全1子矩阵.n,m<=1000. [算法]动态规划(悬线法) [题解]★对于01矩阵中的任意一个全1极大子矩阵,都可以在其上边界遇到的障碍点处悬线到下边界的点x,则点 ... 
- BZOJ_3039_玉蟾宫_(动态规划+悬线法)
		描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3039 n*m的矩阵由R和F组成,求全是F的子矩阵的大小的三倍. 分析 悬线法: 浅谈用极大化思 ... 
- 【BZOJ-3039&1057】玉蟾宫&棋盘制作       悬线法
		3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 753 Solved: 444[Submit][Status][Discuss] D ... 
- BZOJ3039: 玉蟾宫&wikioi2491 玉蟾宫
		3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 430 Solved: 265[Submit][Status] Descriptio ... 
- [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)
		[BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ... 
随机推荐
- Mysql选择合适的存储引擎
			Myisam:默认的mysql插件式存储引擎.如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,那么选择这个存储引擎是非常合适的.Myisam是在we ... 
- 动手实现 React-redux(三):connect 和 mapStateToProps
			我们来观察一下刚写下的这几个组件,可以轻易地发现它们有两个重大的问题: 有大量重复的逻辑:它们基本的逻辑都是,取出 context,取出里面的 store,然后用里面的状态设置自己的状态,这些代码逻辑 ... 
- Redis学习笔记1-安装配置
			一.Redis安装 Redis官网:http://www.redis.io/download 注意:版本号2.4,2.6,2.8等偶数结尾为稳定版,2.5等为非稳定版本,生成环境应该使用稳定版 下载解 ... 
- Spring数据访问1 - 数据源配置及数据库连接池的概念
			无论你要选择哪种数据访问方式,首先你都需要配置好数据源引用. Spring中配置数据源的几种方式 通过在JDBC驱动程序定义的数据源: 通过JNDI查找的数据源: 连接池的数据源: 对于即将发布到生产 ... 
- SpringMvc返回@ResponseBody中文乱码
			使用SpringMvc的@ResponseBody返回指定数据的类型做为http体向外输出,在浏览器里返回的内容里有中文,会出现乱码,项目的编码.tomcat编码等都已设置成utf-8,如下返回的是一 ... 
- Git-往返github和本地
			将GitHub仓库Test弄到本地 本地新建文件夹Test 右击运行gitbash 在gitbash中输入git init 在github 仓库选择clone or download 复制链接http ... 
- app支付宝授权登录获取用户信息
			由后台进行地址的拼接(前台进行授权) // 生成授权的参数 String sign = ""; Long userId1 = SecurityUser.getUserId(); S ... 
- Python小记-- 读取当前目录下所有文件名
			# -*- coding: utf-8 -*- import os def file_name(file_dir): with open("SelectAllFiles.txt", ... 
- qs库 是将url参数和json互转 | query strings 缩写 | import qs from 'qs'
			import qs from 'qs' 1.npm地址 https://www.npmjs.com/package/qs 2.概述 将url中的参数转为对象: 将对象转为url参数形式 3.示例 ... 
- docker 应用数据的管理
			容器数据存储的三种方式 docker volume docker管理素质及文件系统的一部分,保存数据最佳方式 bind mounts 将宿主机的文件映射到容器里 tmpfs 存储在宿主机的内存 ... 
