洛谷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 ...
随机推荐
- Unity3D - 详解Quaternion类(二)
OK,不做引子了,接上篇Unity3D - 详解Quaternion类(一)走起! 四.Quaternion类静态方法 Quaternion中的静态方法有9个即:Angle方法.Dot方法.Euler ...
- MYSQL 两日期之间的工作日(除去周六日,不考虑节假日)
select (floor(days/7)*5+days%7 -case when 6 between wd and wd+days%7-1 then 1 else 0 end - ...
- ms-SQL 递归调用
----递归函数-------------------------------------------------------------------------- create function d ...
- asp.net mvc forms身份认证
web.config配置 <authentication mode="Forms"> <forms loginUrl="~/Login/Index&qu ...
- Office密码破解不求人!
你用Office吗?你会为你的Office文档加密吗?如果Office密码忘了求人吗?最后一个问题是不是让你很头大,求人办事不是要费钱就是要靠人情,不如自己拥有一款强大的密码破解工具,想要Office ...
- Oracle Apex 有用笔记系列 2 - 文件上传管理
1. 页面设计 页面A有若干region, 当中一个region用于文件列表管理(包含显示,下载.删除).如图A. 在页面A有一button,点击它会调用页面B,页面B负责文件上传.如图B. 图A 图 ...
- swift - UIDatePicker 的用法
1.初始化button,datepicker,label等控件,初始化时间格式化器 var datePicker = UIDatePicker() var btnShows = UIBu ...
- python2.0_s12_day9_协程&多线程和cpu,磁盘io之间的关系
事件驱动和异步io有什么直接关系. 当我们访问一个网页,不考虑网络问题.我们人类不觉得网页慢. 但是实际中对计算机来说还是慢.那慢在哪里.io io操作是整个网络操作中最慢的.比如你打开网页要是有2秒 ...
- 查看网卡流量:nload
nload命令用于查看网卡流量,用法如下: [root@localhost ~]$ yum install -y epel-release [root@localhost ~]$ yum instal ...
- web 前端规范实例
<!DOCTYPE html> <html> <head> <title>tmall</title> <!-- 为了被搜索引擎作为流量 ...