bzoj 3039 悬线法求最大01子矩阵
首先预处理每个F点左右,下一共有多少个F点,然后
对于每个为0的点(R),从这个点开始,一直到这个点
下面第一个R点,这一区间中的min(左),min(右)更新答案。
ps:我估计这道题数据有的格式不对,开始过不去,后来改了读入
就能过了
/**************************************************************
Problem:
User: BLADEVIL
Language: Pascal
Result: Accepted
Time: ms
Memory: kb
****************************************************************/
//By BLADEVIL
var
n, m :longint;
map :array[..,..] of longint;
ans, len1, len, len2 :longint;
left, right, down :array[..,..] of longint;
function max(a,b:longint):longint;
begin
if a>b then max:=a else max:=b;
end;
function min(a,b:longint):longint;
begin
if a>b then min:=b else min:=a;
end;
procedure init;
var
i, j, k :longint;
ss :ansistring;
begin
readln(n,m);
for i:= to n do
begin
readln(ss);
k:=;
for j:= to length(ss) do
if ss[j]<>' ' then
begin
inc(k);
if ss[j]='F' then map[i,k]:= else map[i,k]:=;
end;
end;
for i:= to n do
for j:= to m do
if map[i,j]= then left[i,j]:= else left[i,j]:=left[i,j-]+;
for i:=n downto do
for j:=m downto do
begin
if map[i,j]= then down[i,j]:= else down[i,j]:=down[i+,j]+;
if map[i,j]= then right[i,j]:= else right[i,j]:=right[i,j+]+;
end;
end;
procedure main;
var
i, j, k :longint;
begin
for i:= to n do
for j:= to m do
if map[i,j]= then
begin
len:=;
len1:=maxlongint div ;
len2:=maxlongint div ;
for k:= to down[i+,j] do
begin
len1:=min(len1,left[i+k,j]);
len2:=min(len2,right[i+k,j]);
ans:=max(ans,(len1+len2-)*k);
end;
if len1>=maxlongint div then continue;
inc(len,len1);
ans:=max(ans,(len-)*down[i+,j]);
end;
writeln(ans*);
end;
begin
init;
main;
end.
bzoj 3039 悬线法求最大01子矩阵的更多相关文章
- BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp
1057: [ZJOI2007]棋盘制作 Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑 ...
- City Game UVALive - 3029(悬线法求最大子矩阵)
题意:多组数据(国外题好像都这样),每次n*m矩形,F表示空地,R表示障碍 求最大子矩阵(悬线法模板) 把每个格子向上延伸的空格看做一条悬线 以le[i][j],re[i][j],up[i][j]分别 ...
- hdu4328(经典dp用悬线法求最大子矩形)
http://wenku.baidu.com/view/728cd5126edb6f1aff001fbb.html 关于悬线法,这里面有详解. 我当时只想到了记录最大长度,却没有想到如果连最左边和最右 ...
- P4147 玉蟾宫(悬线法求最大子矩阵)
P4147 玉蟾宫 悬线法 ,\(l_{i,j},r_{i,j},up_{i,j}\) 分别表示 \((i,j)\) 这个点向左,右,上能到达的远点.然后面积就很好办了.具体实现见代码. 然而,还有更 ...
- bzoj 3039: 玉蟾宫 单调栈或者悬线法求最大子矩阵和
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 有一天,小猫rainbow ...
- 【BZOJ-3039&1057】玉蟾宫&棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 753 Solved: 444[Submit][Status][Discuss] D ...
- 2018.09.29 bzoj3885: Cow Rectangles(悬线法+二分)
传送门 对于第一个问题,直接用悬线法求出最大的子矩阵面积,然后对于每一个能得到最大面积的矩阵,我们用二分法去掉四周的空白部分来更新第二个答案. 代码: #include<bits/stdc++. ...
- 【BZOJ】3039: 玉蟾宫 悬线法
[题意]给定01矩阵,求最大全1子矩阵.n,m<=1000. [算法]动态规划(悬线法) [题解]★对于01矩阵中的任意一个全1极大子矩阵,都可以在其上边界遇到的障碍点处悬线到下边界的点x,则点 ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
随机推荐
- Vue.js学习 Item13 – 指令系统与自定义指令
基础 除了内置指令,Vue.js 也允许注册自定义指令.自定义指令提供一种机制将数据的变化映射为 DOM 行为. 可以用 Vue.directive(id, definition) 方法注册一个全局自 ...
- 关于overflow-y:scroll ios设备不流畅的问题
最近做双创项目的时候因为页面有很多数据显示,所以打算让它Y轴方向滚动条的形式展现,但在测试阶段发现IOS设备滑动效果非常不理想: search by google之后找到解决办法: -webkit-o ...
- php对数组排序的例子
分享一个php数组排序的例子,介绍了和php,有关的知识.技巧.经验,和一些php源码等. <?php class='pingjiaF' frameborder='0' src='http:// ...
- android AES 部分机器javax.crypto.BadPaddingException: pad block corrupted
package com.bbguoxue.poetry.util; import java.security.SecureRandom; import javax.crypto.Cipher; imp ...
- [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库
此为文章备份,原文出处(我的网站) [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw ...
- MVC控制器C完美分离(有脚手架辅助)
MVC控制器C完美分离(有脚手架辅助) 1. 第一步:建立一个web项目和Controllers的类库,引用必要的dll,然后生成,之后去找到他的目录,找到.csproj后缀的文件,然后在找到web项 ...
- 一些关于python的小感想
python是一门优秀的语言,但随之而来的是大量的知识,各种模块,相信一个人的大脑是很难记住如此多的内容.这时后的我们就应该想办法避免去记忆这么多的内容. 1.查看官方文档(英语很重要,啥也不说了) ...
- UITextField使用的相关方法
1.设置占位符 textField.placeholder = @“”; 2.设置暗文输入 textField.secureTextEntry = YES; 3.设置键盘类型 textField. ...
- JavaScript高级程序设计之作用域链
JavaScript只有函数作用域:每个函数都有个作用域链直达window对象. 变量的查找由内而外层层查找,找到即止. 同时不仅可以查找使用,甚至可以改变外部变量. var color = &quo ...
- Java之HttpURLConnection的变态事: Keep-Alive
HttpURLConnection的变态事: Keep-Alive JDK自带的HttpURLConnection默认启动Keep-Alive, 使用后的HttpURLConnection会放入池里重 ...