牛客练习赛29 B

输入描述:
第一行一个n。
接下来 4*n行,每行4个数。(仅含0,1)。代表n个0/1矩阵。
输出描述:
一个数字表示最长的“连续的1序列”的长度。
输入
3
1 0 1 0
0 0 1 0
1 0 1 0
0 1 0 1 1 0 1 0
0 1 1 1
1 0 1 1
1 1 1 0 1 0 1 1
0 1 0 0
0 1 0 0
0 0 0 1
说明
这回是真良心数据 =
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <string>
#include <deque>
#include <set>
#include <queue>
#include <cmath>
#define ll long long
using namespace std;
const int N = 1e5+;
int cnt1[N],cnt2[N];
int a[N][][],b[][];
int l[],r[],u[],d[];
int n;
//0 从左到右,1从右到左 ,2 上 ,3下
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
for(int j=;j<=;j++){
for(int k=;k<=;k++){
scanf("%d",&b[j][k]);
}
}
for(int j=;j<=;j++){
for(int k=;k<=;k++){//5的目的时为了确定这一行是否都是1
if(!b[j][k]){
a[i][j][]=k-;//第i个矩阵第j行从左到右第1个0之前有a[i][j][0]个1
break;
}
}
}
for(int j=;j<=;j++){
for(int k=;k>=;k--){
if(!b[j][k]){
a[i][j][]=-k;
break;
}
}
}
for(int j=;j<=;j++){
for(int k=;k<=;k++){
if(!b[k][j]){
a[i][j][]=k-; break;
}
}
}
for(int j=;j<=;j++){
for(int k=;k>=;k--){
if(!b[k][j]){
a[i][j][]=-k;
break;
}
}
} }
//横着
int ans = ;
for(int i=;i<=n;i++){
for(int j=;j<=;j++){
if(a[i][j][]==){
cnt1[j]++;
}
else{
if(a[i][j][]>l[j]&&a[i][j][]>r[j]){
if(a[i][j][]>a[i][j][]){//1个矩阵只能放在一个位置
l[j]=a[i][j][];
}
else{
r[j]=a[i][j][];
}
}
else{
l[j]=max(l[j],a[i][j][]);
r[j]=max(r[j],a[i][j][]);
}
}
}
}
for(int i=;i<=;i++){
ans=max(ans,cnt1[i]*+l[i]+r[i]);//后缀1序列+全1序列+前缀1序列
}
//竖着
for(int i=;i<=n;i++){
for(int j=;j<=;j++){
if(a[i][j][]==){
cnt2[j]++;
}
else{
if(a[i][j][]>u[j]&&a[i][j][]>d[j]){
if(a[i][j][]>a[i][j][]){
u[j]=a[i][j][];
}
else{
d[j]=a[i][j][];
}
}
else{
u[j]=max(u[j],a[i][j][]);
d[j]=max(d[j],a[i][j][]);
}
}
}
}
for(int i=;i<=;i++){
ans=max(ans,cnt2[i]*+u[i]+d[i]);
}
printf("%d\n",ans);
return ;
}
牛客练习赛29 B的更多相关文章
- 牛客练习赛 29 E 位运算?位运算!(线段树)
题目链接 牛客练习赛29E 对$20$位分别建立线段树.首先$1$和$2$可以合起来搞(左移右移其实是等效的) 用个lazy标记下.转移的时候加个中间变量. $3$和$4$其实就是区间$01$覆盖操 ...
- 牛客练习赛29 F 算式子
https://www.nowcoder.com/acm/contest/211/F 经典题. 1.分区间 2.向下取整的值变化 & 合并相同值 #include <bits/stdc+ ...
- 牛客练习赛29 B 列队
[题解] 把某一行或某一列有4个1的都统计出来,然后首尾接上尽量长的,注意首尾不能选上同一个矩阵,要维护前缀.后缀1最大值和次大值. 还要注意维护矩阵内连续1的长度,因为可能有 0 0 0 0 这种情 ...
- 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...
- 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B
牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...
- 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A
牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...
- 最小生成树--牛客练习赛43-C
牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...
- 牛客练习赛28-B(线段树,区间更新)
牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, 1 l r 询问区间[l,r]内的元素和 2 l r 询问区间[l,r]内的 ...
- 牛客练习赛26:D-xor序列(线性基)
链接:牛客练习赛26:D-xor序列(线性基) 题意:小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 题解:线性基 #inc ...
随机推荐
- CentOS7.2配置本地yum源
1.检查是否有本地yum源 1)检查是否能连网 ping www.baidu.com 2)检查是否有本地yum源 yum list 2.挂载镜像文件 以上检查,说明确实是内网,也确实没有本地yum源, ...
- B. DZY Loves Modification
B. DZY Loves Modification time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- Java虚拟机内存分配与回收策略
内存分配与回收策略 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行, 执行的速度一般也会比较快. Full GC ...
- window下安装php调试工具xdebug
1.https://xdebug.org/wizard.php在方框中输入本地phpinfo.php中的内容会提示对应要安装的版本, 2.https://xdebug.org/download.php ...
- 传入泛型类型(T.class)的方法
java中当我们需要T.class时会报错,这是我们只需定义一个Class<T>类作为参数传入即可,具体如下: public List<T> findStuByQuery(De ...
- AngularJS(三):重复HTML元素、数据绑定
本文也同步发表在我的公众号“我的天空” 重复HTML元素 在前端的页面编写中,我们会经常遇到重复HTML元素,譬如绘制表格.菜单等,如以下代码显示一个简单的li列表: <body> ...
- Css Hack 大全(IE6、IE7、IE8、IE9 css hack)
一.IE6 css hack: 1. *html Selector {} /* Selector 表示 css选择器 下同 */ 2. Selector { _property: value; } / ...
- pt-table-checksum和pt-table-sync
环境:系统bsd,标准安装,ports安装的mysql. 主172.16.21.126 从172.16.21.128vi /etc/rc.conf 添加 mysql_enable="YES& ...
- IOS 屏幕尺寸、分辨率、点之间的相互关系
iOS 设备现有的分辨率如下:iPhone/iPod Touch普通屏 320像素 x 480像素 iPhone 1.3G.3GS,iPod ...
- JVM的内存划分
1.栈内存:栈内存主要是用来运行函数的,在函数中定义的所有变量,都会在这个内存开辟空间. 在栈内存中定义的变量,不初始化,是不能直接使用的. 注意:所有的函数都必须在栈内存中运行. 而jvm只会运行处 ...