#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<string>
#include<map>
typedef long long ll;
using namespace std;
int n,m,ans;
int a[][],f[][],s1[][],s2[][];//s1为横向,s2为纵向 //s1[i][j]表示(i,j)最多向左(右)延伸多少个格子,使这些格子中的数都是0(不包括(i,j))
//s2[i][j]表示(i,j)最多向上(左)延伸多少个格子,使这些格子中的数都是0(不包括(i,j))
//f[i][j]表以(i,j)为右下(左下)角的最大对角线长度
int main()
{
cin>>n>>m;
//第一遍左上——右下
for(int i=; i<=n; i++)
for(int j=; j<=m; j++)
{
scanf("%d",&a[i][j]);
//如果是0
if(!a[i][j])
{
//向左
s1[i][j]=s1[i][j-]+;
//向上
s2[i][j]=s2[i-][j]+;
}
//如果是1
if(a[i][j])
// f[i-1][j-1]和 (s1[i][j-1],s2[i-1][j])同时取小
//为了防止有1出现
f[i][j]=min(f[i-][j-],min(s1[i][j-],s2[i-][j]))+;
ans=max(ans,f[i][j]);
}
//第二遍右上——左下
memset(f,,sizeof(f));
memset(s1,,sizeof(s1));//数组置0
memset(s2,,sizeof(s2));
for(int i=; i<=n; i++)
for(int j=m; j>=; j--)
{
if(!a[i][j])
{
s1[i][j]=s1[i][j+]+;
s2[i][j]=s2[i-][j]+;
}
if(a[i][j])
f[i][j]=min(f[i-][j+],min(s1[i][j+],s2[i-][j]))+;
ans=max(ans,f[i][j]);
}
cout<<ans<<endl;
return ;
}

luogu P1736 创意吃鱼法的更多相关文章

  1. Luogu P1736 创意吃鱼法【dp】By cellur925

    题目传送门 题意:给出一个01矩阵,找出一条对角线,使得对角线上的元素都为1,而对角线所在矩阵其他元素均为0,使得这样的对角线最长. 状态:$f[i][j]$表示以($i$,$j$)为对角线端点的最长 ...

  2. P1387 最大正方形&&P1736 创意吃鱼法

    P1387 最大正方形 P1736 创意吃鱼法 两道类似的$DP$ 转移方程基本上类似于$f[i][j]=min(f[i-1][j-1],min(f[i][j-1],f[i-1][j]))$ 考虑构成 ...

  3. 洛谷 P1736 创意吃鱼法

    题目描述 题目链接:https://www.luogu.org/problemnew/show/P1736 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢( ...

  4. P1387 最大正方形 && P1736 创意吃鱼法(DP)

    题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...

  5. 洛谷 P1736 创意吃鱼法 Label:dp || 前缀和

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  6. 洛谷P1736 创意吃鱼法

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  7. P1736 创意吃鱼法 图的DP

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  8. P1736 创意吃鱼法

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  9. 洛谷P1736 创意吃鱼法 dp

    正解:dp 解题报告: 早就想写dp的题目辣!我发现我的dp好差啊QAQ所以看到列表的小朋友写dp的题目就跟着他们的步伐做下题好辣QwQ 这题的话没有那——么难,大概说下趴QwQ 首先说下题意 前面一 ...

随机推荐

  1. 介绍求解AX=b:可解性与解的结构

    前面用高斯消元法或矩阵LU分解求解线性方程组的解,主要是针对有唯一解(矩阵A可逆)的情况,下面进一步介绍线性方程组有多个解的情况下,解的求解.

  2. webpack nodejs npm关系

    nodejs是js后端运行平台,可以把它看成java体系中对应的jdk,是三个里面最基础的.npm是nodejs的包管理工具,可以把它看成maven中包依赖管理那部分.webpack是前端工程化打包工 ...

  3. 前端项目引入Echarts中的dataTool的正确方式

    使用echarts画箱线图时调用echarts.dataTool.prepareBoxplotData() 报错:"echarts.dataTool.prepareBoxplotData i ...

  4. XAML 字符转义

    在 写xaml的使用遇到了一些特殊字符,这里记录一下特殊字符转义.  这些特殊字符遵循用于编码的万维网联合会(W3C) XML 标准. 下表显示这组特殊字符的编码语法: 字符 语法 描述 < & ...

  5. vue 路由过渡动效

    <router-view> 是基本的动态组件,所以我们可以用 <transition> 组件给它添加一些过渡效果: <transition name="slid ...

  6. element-ui 组件 el-calendar 农历显示问题

    一.官方文档:https://element.eleme.cn/#/zh-CN/component/calendar 发现官方并无农历显示的介绍 二.1. 自己写阳历转阴历的方法或引入别人写好的 JS ...

  7. 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境

    DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing pr ...

  8. 【redis】基于redis实现分布式并发锁

    基于redis实现分布式并发锁(注解实现) 说明 前提, 应用服务是分布式或多服务, 而这些"多"有共同的"redis"; (2017-12-04) 笑哭, 写 ...

  9. rhel加载raid卡驱动安装系统

    有时候需要把系统安装到RAID上,但是系统本身又缺少该RAID卡驱动,就会导致到硬盘分区时提示没有发现可用磁盘,这时我们就需要首先加载该RAID卡驱动,从而让系统识别到要使用的磁盘. RHEL5 和 ...

  10. ES6和node的模块化

    ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量.CommonJS 和 AMD 模块,都只能在运行时确定这些东西.比如,CommonJS 模块就是对象,输入 ...