洛谷 P1736 创意吃鱼法

P1736 创意吃鱼法

题目描述

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

在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从这个正方形子矩阵“对角线的一端”下口,只一吸,就能把对角线上的那一队鲜鱼吸入口中。

猫猫是个贪婪的家伙,所以她想一口吃掉尽量多的鱼。请你帮猫猫计算一下,她一口下去,最多可以吃掉多少条鱼?

输入输出格式

输入格式:

 

有多组输入数据,每组数据:

第一行有两个整数n和m(n,m≥1),描述池塘规模。接下来的n行,每行有m个数字(非“0”即“1”)。每两个数字之间用空格隔开。

对于30%的数据,有n,m≤100

对于60%的数据,有n,m≤1000

对于100%的数据,有n,m≤2500

 

输出格式:

 

只有一个整数——猫猫一口下去可以吃掉的鱼的数量,占一行,行末有回车。

 

输入输出样例

输入样例#1:
4 6
0 1 0 1 0 0
0 0 1 0 1 0
1 1 0 0 0 1
0 1 1 0 1 0
输出样例#1:
3

说明

右上角的

1 0 0 0 1 0 0 0 1

思路:f[i][j][0],f[i][j][1]分别表示以(i,j)为右下端点,左下端点所能一次吸到的<·)))<<的最大的数量。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,ans;
int map[2501][2501],f[2501][2501][2];
int main(){while(scanf("%d%d",&n,&m)!=EOF){ans=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&map[i][j]);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(map[i][j]){if(!f[i-1][j-1][0])    f[i][j][0]=1;else{int p=f[i-1][j-1][0]+1;for(int k=1;k<=f[i-1][j-1][0];k++)if(map[i-k][j]||map[i][j-k]){p=k;break;}f[i][j][0]=p;}if(!f[i-1][j+1][1])    f[i][j][1]=1;else{int p=f[i-1][j+1][1]+1;for(int k=1;k<=f[i-1][j+1][1];k++)if(map[i-k][j]||map[i][j+k]){p=k;break;}f[i][j][1]=p;}}ans=max(f[i][j][0],max(f[i][j][1],ans));}cout<<ans;}
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7543130.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员面试中遇到问题

面试时候经常会问的一些问题(不断补充中) 面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常看到这些题). 如何把一段逗号分割的字符串转换成一个数组? request.getAtt…

linux检查swap配置,Linux环境下swap配置方法

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;前言安装Linux系统之后&#xff0c;默认是没有swap分区&#xff0c;那么我们怎样增加和删除swap分区。配置swap步骤1) 内存占用情况1free -hSwap: 0B 0B 0B2) 通过…

react学习系列1 修改create-react-app配置支持stylus

注&#xff1a;由于前端更新非常快&#xff0c;写这篇文章时 create-react-app 使用的版本是1.4.1 最新的使用流程请参照官方文档。create-react-app 是facebook推出的快速创建react项目的命令行工具。 他和 vue-cli 类似。开箱即用&#xff0c;不用改一行配置就可以开发出针对…

Python 内置模块之 时间模块 datetime

概述 datatime模块重新封装了time模块&#xff0c;提供更多接口&#xff0c;datetime库定义了2个常量和5个类。 2个常量分别是&#xff1a; MINYEAR1MAXYEAR9999 5个类分别是&#xff1a; date类&#xff1a;表示日期的类time类&#xff1a;表示时间的类datetime类&#xf…

python自学网站需要多长时间-怎么自学python,大概要多久?

我泼点冷水&#xff1a;建议还是要慎重选择上来新手就自学Python。如果想认认真真打好基础&#xff0c;还是要至少从Java学起。换句话说&#xff0c;先学会Java&#xff0c;然后再学Python不迟。 Python的最大优势是简单明快&#xff0c;最大问题也是简单明快。 我面试过很多用…

[c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset

一、memset #include<stdio.h> #include<stdlib.h> #include<memory.h>void *mymemset(void *p, int num, int len) {char *px (char *)p;if (p NULL)return NULL;while (len>0){*px (char)num;px;len--;}return p;//因为上述代码是对px进行操作&#…

linux切换sid,linux – 将sid字段添加到ps -f输出

我正在阅读ps手册页,有一些我不明白的东西.-f does full-format listing. This option can be combined with many otherUNIX-style options to add additional columns. It also causes thecommand arguments to be printed. When used with -L, the NLWP (number ofthreads) …

使用Cross-Page Postback(跨页面提交)在页面间传递数据

页面间传递数据的几种方法 在页面间传递数据时&#xff0c;我们有以下几种选择&#xff1a; 1、Query String 一个很常见的方法&#xff0c;Query String是URL中问号之后的那一部分。其优点在于它是轻量级的&#xff0c;不会给服务器带来任何负担。而它也有几个缺点&#xff1a…

synchronized 和 lock 的区别

lock更灵活&#xff0c;可以自由定义多把锁的加锁解锁顺序&#xff08;synchronized要按照先加的后解顺序&#xff09; 提供多种加锁方案&#xff0c;lock 阻塞式, trylock 无阻塞式, lockInterruptily 可打断式&#xff0c; 还有trylock的带超时时间版本。 本质上和监视器锁&a…

win10怎么设置默认输入法_win10系统输入法失效打不了字怎么办

大家好&#xff0c;今天分享一篇来自小白系统官网(xiaobaixitong.com)的图文教程。最近有用户反映自己电脑上的win10系统出现输入法失效打不了字的问题&#xff0c;想知道有没有解决该问题的方法。小编经过一番查找后给大家整理出了针对该问题的解决方法&#xff0c;下面就让我…

Python 内置模块之 时间模块 time

time模块提供各种时间相关的功能,与时间相关的模块有&#xff1a;time,datetime,calendar 必要说明&#xff1a; 这个模块的功能不是适用于所有的平台 这个模块中定义的大部分函数是调用C平台上的同名函数实现 一些术语和约定的解释&#xff1a; 时间戳(timestamp)的方式,返…

linux找link原路径,readlink命令找出符号链接所指向的位置

1.释义找出符号链接所指向的位置2.系统帮助用法&#xff1a;readlink [选项]... 文件...输出符号链接值或权威文件名。-f, --canonicalize递归跟随给出文件名的所有符号链接以标准化&#xff0c;除最后一个外所有组件必须存在-e, --canonicalize-existing递归跟随给出文件名的所…

国产毫米波雷达领域的领头羊,木牛科技将在明年量产77GHz汽车雷达

国内的汽车毫米波雷达市场风潮起于2015年前后&#xff0c;彼时国内的毫米波雷达企业已经发展很多年&#xff0c;但大都在军工领域。 面对突然出现的汽车毫米波雷达市场热潮&#xff0c;国内很快涌现出了一大批雷达的初创企业&#xff0c;努力挤进这一亦新亦旧的市场。 说是新&a…

面试风云录(02) - 与顶级CTO交手的难忘经验...

大部分面试都是寻找团队伙伴或成员&#xff0c;很少是面试高层&#xff0c;因为职级比我们高的人&#xff0c;自然会有更高层的人面试他们&#xff0c;但这次分享的不是一般面试&#xff0c;而是我跟顶级CTO交手的经验&#xff0c;尽管为了顾虑当事人隐私&#xff0c;我已经隐去…

MySQL 之 performance_schema

背景&#xff1a; 自 MySQL5.5开始&#xff0c;MySQL新增了一个数据库&#xff1a;PERFORMANCE_SCHEMA&#xff0c;主要用于收集数据库服务器性能参数。此库中表的存储引擎均为PERFORMANCE_SCHEMA&#xff08;用户不能创建存储引擎为PERFORMANCE_SCHEMA的表&#xff09;。MySQ…

DNS解析原理与Bind部署DNS服务

DNS是什么&#xff1f; DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;是互联网上最核心的带层级的分布式系统&#xff0c;它负责把域名转换为IP地址、反查IP到域名的反向解析以及宣告邮件路由等信息&#xff0c;使得基于域名提供服务称为可能&#xff0c…

qt 获取本机的wifi密码_还在记密码?这款开源免费的账号密码管理神器赶紧收了...

工作中涉及到得账号密码&#xff0c;你是怎么记录得&#xff1f;如果是文档word或者excel记录&#xff0c;那么回非常麻烦&#xff0c;每次还得打开。如果是浏览器自己记录&#xff0c;如果更新密码&#xff0c;又记不得。尴尬&#xff01;今天大卫给大家推荐一款开源免费得账号…

adaptec raid linux,adaptecraid卡管理软件在windows和linux下的安装使用介绍(7页)-原创力文档...

adaptec raid卡管理软件在 windows和linux下的安装使用文档l.adaptec raid卡的管理软件在 windows下安装后的运行界面如下图:adaplecadaplec点击connect后&#xff0c;便可进入管理软件的主界面&#xff0c;如下图:在这个主界面中可以选择要操作的 raid卡&#xff0c;例如本例中…

think queue 消息队列初体验

使用的是tp5 自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景&#xff1a; 消息队列适用于大并发或者返回结果 时间有点长并需要批量操作的第三方接口。 当前使用快递单号获取&#xf…

Linux快速计算MD5和Sha1命令

Linux计算MD5和Sha1的命令 MD5 MD5即Message-Digest Algorithm 5&#xff08;信息-摘要算法 5&#xff09;&#xff0c;用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一&#xff08;又译摘要算法、哈希算法&#xff09;&#xff0c;主流编程语言普遍已有MD5实现。 S…