P1736 创意吃鱼法

2023-10-29 14:40
文章标签 创意 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

dp 
这题跟正方形dp那题的升级版 
这里写图片描述

怎么更新呢?

一方面: 
左上角那个黄点为前一个状态

另一个限制方面: 
左边和上面的那两个黄点开始按箭头方向走,分别统计各自最长0的个数(开s1,s2数组进行记忆化)

取这三者的最小值就行

状态转移方程: 
dp[i][j]=min(dp[i-1][j-1],s1[i][j-1],s2[i-1][j])+1;

#include<bits/stdc++.h>
using namespace std;
#define maxn 2600
#define inf 0x3f3f3ftypedef long long ll;int n,m;
int G[maxn][maxn];
int dp[maxn][maxn];
int s1[maxn][maxn];
int s2[maxn][maxn];
int ans=0;int main()
{scanf("%d %d",&n,&m);//从左上至右下    for(int i=1; i<=n; i++)for(int j=1; j<=m; j++){scanf("%d",&G[i][j]);if(!G[i][j])//为0就进行增长处理
            {s1[i][j]=s1[i][j-1]+1; s2[i][j]=s2[i-1][j]+1;}else{dp[i][j]=min(dp[i-1][j-1],min(s1[i][j-1],s2[i-1][j]))+1;ans=max(ans,dp[i][j]);}}memset(dp,0,sizeof(dp));memset(s1,0,sizeof(s1));//从右上至左下,就改一点点就行for(int i=1; i<=n; i++)for(int j=m; j>=1; j--){if(!G[i][j])s1[i][j]=s1[i][j+1]+1;else{dp[i][j]=min(dp[i-1][j+1],min(s1[i][j+1],s2[i-1][j]))+1;ans=max(ans,dp[i][j]);}}cout<<ans;return 0;
}

 

转载于:https://www.cnblogs.com/planche/p/8438150.html

这篇关于P1736 创意吃鱼法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301317

相关文章

Camtasia2024旗舰版新功能介绍,让创意更出彩!

Camtasia2024新功能,让创意更出彩! 🌟 开篇安利 亲爱的小伙伴们,今天我要给你们介绍一款让我彻底告别“手残党”标签、轻松制作视频的神器——Camtasia2024!🎉🎉🎉 camtasia2024绿色免费安装包win+mac下载,点击链接即可保存。 https://pan.quark.cn/s/5ee0c4655701 Camtasia 2024 win-安装包官方版

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。

云服务器如何提升你的创意生活:必试有趣项目

云服务器都可以做哪些有趣的项目 云服务器因其高效、灵活和可扩展等特点,成为了越来越多人选择的开发和学习平台。如果你拥有一台云服务器,但是不知道能用它做什么有趣的项目,那么这篇文章将为你提供一些有意思的想法。 1. 个人博客/网站 一个个人博客或网站无疑是云服务器的经典用途之一。你可以使用诸如WordPress、Hexo、Ghost等博客框架来创建属于自己的网站,分享知识和生活。 示例项目

HTML和CSS网页制作成品:用代码点亮创意

HTML和CSS是网页制作的基石,它们可以用来构建各种各样的网页,从简单的个人主页到复杂的电子商务网站。本文将介绍一些有趣的HTML和CSS网页制作成品案例,并分析其背后的技术原理,激发你的创作灵感。 案例一:响应式个人简历网站         响应式个人简历网站可以根据不同的设备屏幕尺寸进行自动调整,确保在所有设备上都能清晰易读。该网站通常包含以下几个部分: 个人简介:包括姓名、工作经历

效率升级,创意无限:2024年必备录屏软件

随着科技的飞速发展与用户需求的多元化趋势,录屏软件市场迎来了前所未有的繁荣景象,各种功能强大、特色鲜明的软件如雨后春笋般涌现。今天,我们将聚焦于那些如同obs录屏般,能够提供快捷操控体验的专业录屏工具。 1.福昕录屏大师 链接:www.foxitsoftware.c/REC/ 这款录屏软件以其简约直观的设计,成为了初学者的理想伴侣。它不仅是一款专业的录屏工具,还兼具了快速下载与简便安装的优点

【圣诞营销秘籍】Newsbreak上引爆欧美圣诞饰品电商广告的创意攻略

【圣诞营销秘籍】Newsbreak上引爆欧美圣诞饰品电商广告的创意攻略 随着冬日雪花的悄然飘落,欧美大地迎来了最为温馨浪漫的节日——圣诞节。对于电商行业而言,这不仅是销售旺季的巅峰,更是品牌展示创意与魅力的绝佳时机。Newsbreak,作为知名的新闻聚合与推送平台,其庞大的用户基数和精准的推送机制,为圣诞饰品电商提供了前所未有的营销舞台。本文将为您揭秘,如何在Newsbreak上策划

重塑购物体验:TikTok达人与服装品牌的创意营销方式

数字化时代,TikTok独特的算法和内容传播机制为品牌提供了前所未有的营销机会。特别是在服装行业,TikTok达人与品牌的合作正在不断创新,推动着新的营销形式的出现。这些形式不仅能够展现品牌的创意和多样性,还能够在全球范围内吸引用户的关注和参与。本文Nox聚星将和大家探讨服装品牌如何与TikTok达人合作,共同创造出既符合品牌调性又能吸引全球用户的独特营销内容。 一、短视频:将创意融入每一帧

如何批量的产生创意?

如何批量的产生创意? 1.发现身边的创意2.联想术3.模仿 1.怎么发现身边的创意? 1.组合门:1+1>22.拆开门:少即是多 2.什么是组合门? 1.核心:组合的物品更加便利2.walkman播放器 背景痛点新品有耳机,有收音机录音机笨重,需要随时随地的播放音乐新的播放器小,能用耳机收听 3.什么是拆开门? 1.核心:物品要高频 ,易使用 根据极限拆开 (流水线就只5个以内

怎么产生创意?

怎么产生创意? 1.什么是创意? 1.创意是人从不同的角度看同样的事务有不同的看法2.创意主要是为了解决特定的问题 2.怎么不会有创意? 1.固有习惯:习惯会束缚我们发散思考,减少尝试各种可能2.直线思维: 将曾经解决的问题套用在当下的问题上 大脑好逸恶劳,会主动选择最短的路程 3.标准答案:标准答案会让我们放弃最优解 3.怎么产生创意呢? 1.头脑风暴

TikTok达人效应下的家居品牌:创意营销推动品牌年轻化

当传统家居品牌遇上TikTok上的创意达人,一场关于家居美学、生活方式与数字创意的碰撞便悄然上演,不仅为品牌注入了新鲜活力,也极大地提升了产品的市场影响力和用户粘性。本文Nox聚星将和大家探讨家居品牌如何通过与TikTok达人合作,利用创意内容生产来提升品牌知名度和用户粘性,同时促进产品创新和品牌年轻化。 一、创意视频的力量 TikTok的核心特点之一是其短视频格式,这种格式非常适合于展示