洛谷P1736 创意吃鱼法 dp
正解:dp
解题报告:
早就想写dp的题目辣!我发现我的dp好差啊QAQ所以看到列表的小朋友写dp的题目就跟着他们的步伐做下题好辣QwQ
这题的话没有那——么难,大概说下趴QwQ
首先说下题意
前面一堆什么吃鱼之类的都是瞎扯淡,,,我我我我开始还以为只能站在边界我会说
然后简单来说这题就是要找一个最大子正方形使得它只有对角线有鱼
然后这题大概就是设三个数组,h[i][j]表示向左最多拓展多少个0 l[i][j]表示向上最多拓展多少个0 f[i][j]表示向左上最多拓展多少个1
转移大概就是这样子的:
f[i][j]=min(f[i-1][j-1],h[i][j-1],l[i-1][j])+1
很好理解趴还是?然后就大力转移即可,也不用初始化什么的,就很susi
哦还有就是注意一下它的对角线不一定是左上右下,,,我开始写题解的时候一直以为只能是左上右下的,,,
但其实差不多只要再做一遍就成辣!
over!
# include <bits/stdc++.h> using namespace std; #define ll int #define rg register #define rp(i,x,y) for(rg ll i=x;i<=y;++i) #define my(i,x,y) for(rg ll i=x;i>=y;--i) +; ll h[N][N],l[N][N],f[N][N],as,n,m; inline ll read() { rg ll x=;rg ;rg char ch=getchar(); '))ch=getchar(); ,ch=getchar(); )+(x<<)+(ch^'),ch=getchar(); return y?x:-x; } inline ll mn(ll x,ll y,ll z){return min(min(x,y),z);} int main () { n=read();m=read(); rp(i,,n) rp(j,,m) { bool pl=read(); ]+,l[i][j]=l[i-][j]+; ][j-],h[i][j-],l[i-][j])+,; } memset(h,,,sizeof(f)); rp(i,,n)my(j,m,)]+;][j+],h[i][j+],l[i-][j])+,as=max(as,f[i][j]); printf("%d\n",as); ; }
代码在这儿!
做完之后upd一下这题还有一个小坑点要注意
就是,它很容易炸内存,,,
要通过两个途径优化一下不然会MLE
第一个是要开int不要开ll(,,,对我这种无脑开ll星人极不友好TT
第二个是读入pl之后我本来是给pl另开了一个数组,因为想着之后还要重做一次嘛,但实际上不需要,我们可以直接通过l或h得到pl是1还是0
(ps:这题还可以用枚举+剪枝过去,不想写了详见婷婷小朋友博客
洛谷P1736 创意吃鱼法 dp的更多相关文章
- 洛谷 P1736 创意吃鱼法 Label:dp || 前缀和
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 洛谷 P1736 创意吃鱼法(多维DP)
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 洛谷 P1736 创意吃鱼法
题目描述 题目链接:https://www.luogu.org/problemnew/show/P1736 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢( ...
- 洛谷P1736 创意吃鱼法
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- P1736 创意吃鱼法 /// DP
题目大意: https://www.luogu.org/problemnew/show/P1736 题解 dplr[][] 当前点左边(副对角线时为右边)有多少个连续的0 dpup[][] 当前点上边 ...
- P1387 最大正方形&&P1736 创意吃鱼法
P1387 最大正方形 P1736 创意吃鱼法 两道类似的$DP$ 转移方程基本上类似于$f[i][j]=min(f[i-1][j-1],min(f[i][j-1],f[i-1][j]))$ 考虑构成 ...
- P1736 创意吃鱼法 图的DP
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- P1736 创意吃鱼法[二维dp]
题目背景 感谢@throusea 贡献的两组数据 题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她 ...
- P1387 最大正方形 && P1736 创意吃鱼法(DP)
题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...
随机推荐
- MySQL Date函数的正确用法
以下的文章主要介绍的是MySQL Date函数的实际应用其中包括如何获取当前时间的具体操作,Unix时间的具体应用,时间前后.时间间隔与时间转换的实际内容描述,以下就是文章的主要内容. MySQL D ...
- js得到当前文档的编码:document.characterSet
<!DOCTYPE HTML> <html > <head> <meta charset="utf-8"> <!--meta ...
- 让Flask-admin支持markdown编辑器
前言 flask-admin 算是一个很不错的 flask 后台管理了,用它来做博客系统的管理后端再合适不过了,节约时间成本,避免重复造轮子,但是作为一个程序员,写文章怎么可以没有 markdown ...
- 关于NoSQL与SQL的区别
简单说来:sql是关系型数据库的结构化查询语言,而nosql,一般代指菲关系型数据库,sql语句就不能用来,不过有些有leisql的查询语言,且nosql数据库没有统一的查询语言. 相关参考文章阅读: ...
- 如何查看nginx的版本及配置选项?nginx都配置了哪些的模块?
需求描述: 新接手别人的nginx,想要查看当前都配置了哪些模块 操作过程: 1.通过nginx -V选项查看nginx的配置选项 [root@hadoop3 sbin]# ./nginx -V ng ...
- 【java】java内存模型(2)--volatile内存语义详解
多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”.可见性的意思是当一个线程 ...
- ios开发之--从相机或相册选取图片,并带删除操作的demo
多选图片的一个效果,如下图:
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)
使用maven打包的时候出现如下错误: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compil ...
- poj_2406 kmp
题目大意 给出一个字符串S,S可能是多个较短的字符串的重复连接.比如"ababab"为字符串"ab"重复三次的结果:"abc" 为" ...
- 【Linux】 ftp 主动被动模式
LNMP 搭建得服务器,在使用ftp时候,报如下错误: 经查,是ftp 主动模式被动模式问题 工具: Xftp5 ,把被动模式勾 取消 (其他客户端可以网上查一下 相应的 被动模式转主动模式设置 ...