Code[VS]1159 最大全0子矩阵
原题链接:http://codevs.cn/problem/1159/
题目描述 Description
在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O的个数最多。
输入描述 Input Description
输入文件第一行为整数N,其中1<=N<=2000,为方阵的大小,紧接着N行每行均有N个0或1,相邻两数间严格用一个空格隔开。
输出描述 Output Description
输出文件仅一行包含一个整数表示要求的最大的全零子矩阵中零的个数。
样例输入 Sample Input
5
0 1 0 1 0
0 0 0 0 0
0 0 0 0 1
1 0 0 0 0
0 1 0 0 0
样例输出 Sample Output
9
题解
悬线法模板题。
对于每个点,我们维护一下该点向上最大能扩展多少,以及这个点的悬线向左向右能平移多少,然后枚举所有悬线求最大子矩形即可,复杂度O(nm)O(nm)O(nm)。
代码
#include<bits/stdc++.h>
using namespace std;
const int M=2e3+5;
int n,h[M][M],l[M][M],r[M][M],sq[M][M];
void in()
{scanf("%d",&n);for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)scanf("%d",&sq[i][j]);
}
void ac()
{for(int i=1;i<=n;++i){for(int j=1;j<=n;++j)h[i][j]=sq[i-1][j]?1:h[i-1][j]+1,l[i][j]=sq[i][j-1]?1:l[i][j-1]+1;for(int j=n;j>=0;--j)r[i][j]=sq[i][j+1]?1:r[i][j+1]+1;}int ans=0;for(int i=1;i<=n;++i)for(int j=1;j<=n;++j){if(sq[i][j]){h[i][j]=l[i][j]=r[i][j]=0;continue;}if(i>1&&!sq[i-1][j])l[i][j]=min(l[i][j],l[i-1][j]),r[i][j]=min(r[i][j],r[i-1][j]);ans=max(ans,(l[i][j]+r[i][j]-1)*h[i][j]);}printf("%d",ans);
}
int main()
{in();ac();return 0;
}
Code[VS]1159 最大全0子矩阵相关推荐
- cv1159 最大全0子矩阵(极大子矩阵)
题目描述 Description 在一个01方阵中找出其中最大的全0子矩阵,所谓最大是指0的个数最多. 输入描述 Input Description 输入文件第一行为整数N,其中1<=N< ...
- 最大全0/1子矩阵的探究
最大全0/1子矩阵的探究 by MedalPluS [问题模型] 给定一个n*n的矩阵,求矩阵中面积最大的一个值全是0或1的子矩阵 [分析] (这里n*n完全可以改为n*m,但由于种种原因,等下代码里 ...
- 最大全1子矩阵的两种解法(例题:City Game HDU - 1505)
以前牛客多校遇到过两道,都没做出来,这次来系统性的补习一下. 例题:City Game HDU - 1505 题意:给你一个矩阵,求最大全1子矩阵,最后结果乘以3... 全1矩阵可以参考下图 这个框就 ...
- nodejs error Windows_NT 6.1.7601 21 error code ELIFECYCLE 22 error angular-adminlte-plugin@0.1.0
报错日志: 17 error Windows_NT 6.1.7601 18 error argv "D:\\Program Files\\nodejs\\node.exe" &qu ...
- Code Complete《代码大全》读书笔记
最近拜读了 Code complete<代码大全>,这部大块头确实经典,涉及到了软件开发的方方面面.有点后悔没有早些阅读,值得推荐给还没读过的朋友.它并不是针对某种语言的武林秘籍,应该可以 ...
- 【leetcode】85. Maximal Rectangle 0/1矩阵的最大全1子矩阵
1. 题目 Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1 ...
- CCS(Code Composer Studio) 10.2.0的下载和安装(最新教程)
CCS(Code Composer Studio)是一整套用于开发和调试嵌入式应用的工具,包含适用于每个TI器件系列的编译器.源码编译器.项目构建环境.调试器.描述器.仿真器以及多种功能. 本文将介绍 ...
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一
好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在V ...
- Visual Studio Code预览版Ver 0.3.0试用体验
当你开始阅读这篇文章时,请先不要把Visual Studio Code和.net.Windows联想到一起,因为VS Code是一个跨平台,支持30多种语言的开箱代码编辑器.不管你是.Net.Java ...
- 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)
干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些 ...
最新文章
- livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程
- 支持向量机(SVM)算法
- 【转】Source Insight 有用设置配置
- android 多线程概述
- voxblox建图教程
- 第一章 对象引论02
- Android GPS 取经纬度
- 问题六十八:着色模型(shading model)(1)——反射模型(reflection model)(2.1)——漫反射(diffuse reflection)
- maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
- 标定_基于目标的激光雷达与相机外参标定方法汇总
- CentOS 7 samba 配置
- INS/GNSS组合导航(一)-绪论
- bzoj2037 Sue的小球(区间dp,考虑到对未来的贡献)
- python数据可视化方法和库
- Uber Go 语言编程规范:使用 go.uber.org/atomic
- 比较简单的初学者模仿毕业设计项目springboot人力资源管理系统.rar(项目源码+数据库文件)
- 信息系统项目管理师必背核心考点(四十五)招标投标法
- CENTOS上的网络安全工具(二)ARKIME部署安装
- 信捷服务器Z相信号,信捷plc标记与中断处理小知识
- 如何使用Graylog来收集日志?