CODEVS 2491 玉蟾宫
题目描述
有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。
这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。
现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着'F'并且面积最大。
但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为S,它们每人给你S两银子。
输入描述
第一行两个整数N,M,表示矩形土地有N行M列。
接下来N行,每行M个用空格隔开的字符'F'或'R',描述了矩形土地。
输出描述
输出一个整数,表示你能得到多少银子,即(3*最大'F'矩形土地面积)的值。
样例输入
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
样例输出
45
数据范围及提示
对于50%的数据,1<=N,M<=200
对于100%的数据,1<=N,M<=1000
题解:这道题目要求的是最大的子矩阵,用普通的做法O(n^4)是绝对不行的,我们这时就要用到悬线法来用O(n^2)的空间复杂度来完成此题。悬线法是由国家队队员王知昆提出,详见下面的链接。
请参考:http://wenku.baidu.com/view/6b348c0203d8ce2f006623bb.html
#include <cstdio>
#include <iostream>
#include <algorithm>
int n,m,a[1005][1005],leftt[1005],rightt[1005],h[1005],ans;
char ch;
using namespace std;
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++){cin>>ch;if (ch=='R') a[i][j]=1;}for (int i=1;i<=n;i++) leftt[i]=1,rightt[i]=m;for (int i=1;i<=n;i++){int l=0,r=m+1;for (int j=1;j<=m;j++)if (a[i][j]){l=j;h[j]=0;leftt[j]=1;} else{h[j]++;leftt[j]=max(leftt[j],l+1);}for (int j=m;j>=1;j--){if (a[i][j]){r=j;rightt[j]=m;} elserightt[j]=min(rightt[j],r-1);ans=max(ans,(rightt[j]-leftt[j]+1)*h[j]);}}printf("%d\n",ans*3);return 0;
}
CODEVS 2491 玉蟾宫相关推荐
- 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 753 Solved: 444 [Submit][Status][Discuss] ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
- bzoj 3039: 玉蟾宫(悬线法)
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 975 Solved: 562 [Submit][Status][Discuss] ...
- 洛谷P4147 玉蟾宫(单调栈解决)
题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N\times ...
- BZOJ[3039]玉蟾宫 悬线法
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3039 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山 ...
- BZOJ 3039 玉蟾宫
Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个格子里写着'R'或者 ...
- 【洛谷】P4147 玉蟾宫 解题报告
[洛谷]P4147 玉蟾宫 解题报告 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N* ...
- 玉蟾宫【洛谷P4147】
题目描述 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成NM个格子,每个格子里写着'R'或者'F',R代表这 ...
- bzoj3039 玉蟾宫
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 606 Solved: 367 [Submit][Status][Discuss] ...
最新文章
- 动手学深度学习笔记一线性回归
- RHEL7恢复root密码
- About Instruments
- vsftpd.conf详解
- php时间区间,优化显示
- python-用Map, Filter, Reduce代替For循环
- c#读取xml中特定节点的值(实例)
- 导出mysql sql语句吗_mysql sql语句导入与导出
- Dataset:数据生成之利用pandas自定义生成随机各自类型(离散型和连续型)的dataframe数据
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
- 修改用户和用户组权限
- 全球排名前50网站使用的开发语言及系统平台
- ZZULIOJ 1047: 对数表,Java
- MAX6299MTT在CPLD上的应用
- 鱼之死,越狱章鱼和雾霾黑客
- 前端开发和后端开发究竟有什么区别?详细介绍
- 特斯拉硬核皮卡发布,现场却「碎了一地玻璃」
- EfficientNET_V1
- 消防工程师 1.1 消防给水及设施(2)
- 激活windows10系统提示错误代码0x800705b4怎么解决
热门文章
- 263企业邮箱imap服务器,263企业邮箱实现IMAP邮箱搬家功能
- android sdk目录缺少uiautomatorviewer,解决Android8.0以上运行不了uiautomatorviewer的办法...
- 有内鬼,终止换脸!用Landmarks Debug找出不老实的脸。
- java随机生成数字和字母_使用java如何生成随机的字母数字字符串?
- hosts : IP - 主机名/域名映射
- PMP之项目采购管理
- java开发-微信支付
- 机器学习之Python Sklearn——线性回归
- matlab绘制空间摆线轨迹
- 你和你的女神之间,差了一个OpenCV口红色号识别器