[codevs1159]最大全0子矩阵(悬线法)
解题关键:悬线法模板题。注意此模板用到了滚动数组。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<cmath>
#define maxn 2002
using namespace std;
typedef long long ll;
int map[maxn][maxn],l[maxn],r[maxn],h[maxn];
int n;
int main(){
cin>>n;
for(int i=;i<=n;i++)for(int j=;j<=n;j++)cin>>map[i][j];
for(int i=;i<=n;i++)l[i]=,r[i]=n,h[i]=;
int ll,rr,ans=;
for(int i=;i<=n;i++){
ll=,rr=n+;
for(int j=;j<=n;j++){
if(map[i][j])h[j]=,l[j]=,ll=j;
else h[j]++,l[j]=max(l[j],ll+);
}
for(int j=n;j>=;j--){
if(map[i][j])r[j]=n,rr=j;//不要重复++与赋值
else r[j]=min(r[j],rr-),ans=max(ans,h[j]*(r[j]-l[j]+));
}
}
printf("%d\n",ans);
return ;
}
[codevs1159]最大全0子矩阵(悬线法)的更多相关文章
- Codevs 1159 最大全0子矩阵 悬线法!!!!
1159 最大全0子矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O ...
- Codevs 1159 最大全0子矩阵
1159 最大全0子矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 在一个0,1方阵中找出其中最大的全 ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
- [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵
https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...
- City Game UVALive - 3029(悬线法求最大子矩阵)
题意:多组数据(国外题好像都这样),每次n*m矩形,F表示空地,R表示障碍 求最大子矩阵(悬线法模板) 把每个格子向上延伸的空格看做一条悬线 以le[i][j],re[i][j],up[i][j]分别 ...
- BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp
1057: [ZJOI2007]棋盘制作 Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑 ...
- P4147 玉蟾宫(悬线法求最大子矩阵)
P4147 玉蟾宫 悬线法 ,\(l_{i,j},r_{i,j},up_{i,j}\) 分别表示 \((i,j)\) 这个点向左,右,上能到达的远点.然后面积就很好办了.具体实现见代码. 然而,还有更 ...
- 【BZOJ】3039: 玉蟾宫 悬线法
[题意]给定01矩阵,求最大全1子矩阵.n,m<=1000. [算法]动态规划(悬线法) [题解]★对于01矩阵中的任意一个全1极大子矩阵,都可以在其上边界遇到的障碍点处悬线到下边界的点x,则点 ...
- bzoj1057: [ZJOI2007]棋盘制作(悬线法)
题目要求纵横坐标和奇偶性不同的点取值不同,于是我们把纵横坐标和奇偶性为1的点和0的点分别取反,就变成经典的最大全1子矩阵问题了,用悬线法解决. #include<iostream> #in ...
随机推荐
- python向数据库插入中文乱码问题
1.python向数据库插入中文乱码问题 直接手动insert into 中文 不乱码,但是用程序跑起来就乱码. conn =MySQLdb.connect(host="127.0.0.1& ...
- 【剑指offer】以o(1)复杂度删除啊链表的节点,C++实现(链表)
0.简介 本文是牛客网<剑指offer>刷题笔记. 1.题目 在O(1)时间内删除链表节点. 2.思路 前提条件:删除的节点在链表上:边界条件:链表 ...
- 浅谈FFT(快速傅里叶变换)
本文主要简单写写自己在算法竞赛中学习FFT的经历以及一些自己的理解和想法. FFT的介绍以及入门就不赘述了,网上有许多相关的资料,入门的话推荐这篇博客:FFT(最详细最通俗的入门手册),里面介绍得很详 ...
- htc使用方式(转)
一.htc的两种使用方式: 关联行为(Attach Behavior): IE 5.0以上支持, htc 技术出现的初衷. 主要目的是把对象复杂的样式变化包装起来,替代 javascript + cs ...
- 学习动态性能表(16)--v$rowcache
学习动态性能表 第16篇--V$ROWCACHE 2007.6.12 本视图显示数据字典缓存(也叫rowcache)的各项统计.每一条记录包含不同类型的数据字典缓存数据统计,注意数据字典缓存有层次差 ...
- Windows平台下gitbook的安装与使用
最近要用到gitbook去阅读电子书,整理了一份在windows系统下安装gitbook的过程. * 安装nodejs * 安装cnpm * 搭建gitbook平台 1.在windows上安装node ...
- Monkey测试与MonkeyRunnner测试的区别
1.Monkey测试 == 压力测试: MonkeyRunner == 自动化测试 2.Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件 3.MonkeyRu ...
- 命令"service 服务名 restart" 与 "service 服务名 reload"的区别
由于今天用到了service nginx reload 和 service nginx restart,说说他俩的区别吧: reload:不间断服务重启,就像一张网页上面的刷新按钮一样. restar ...
- HDU4039(map应用)
The Social Network Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)T ...
- minidump-DMP文件的生成和使用
转载地址点击打开链接 1.生成dmp的程序 #include <dbghelp.h> #pragma comment(lib, "dbghelp.lib") //设 ...