N*N的矩阵,每个格子上有一个值。

老鼠起始在(1,1),每次只能水平着走或垂直着走。且最多只能走K步。且走到的格子里的值必须比上一次呆的格子里的值大。

问老鼠最多收集到多少值。

思路:

记忆搜好写、方便。

注意边界

代码:

int n,k;
int a[105][105];
int dp[105][105]; int dfs(int x,int y){
if(dp[x][y]>0)
return dp[x][y];
for(int i=x+1;i<=min(n,x+k);++i){
if(a[i][y]>a[x][y]){
dp[x][y]=max( dp[x][y],dfs(i,y)+a[x][y] );
}
}
for(int i=x-1;i>=max(1,x-k);--i){
if(a[i][y]>a[x][y]){
dp[x][y]=max( dp[x][y],dfs(i,y)+a[x][y] );
}
}
for(int i=y+1;i<=min(n,y+k);++i){
if(a[x][i]>a[x][y]){
dp[x][y]=max( dp[x][y],dfs(x,i)+a[x][y] );
}
}
for(int i=y-1;i>=max(1,y-k);--i){
if(a[x][i]>a[x][y]){
dp[x][y]=max( dp[x][y],dfs(x,i)+a[x][y] );
}
}
if(dp[x][y]==0)
dp[x][y]=a[x][y];
return dp[x][y];
} int main(){ while(scanf("%d%d",&n,&k)!=EOF){
if(n==-1 && k==-1){
break;
}
rep(i,1,n){
rep(j,1,n){
scanf("%d",&a[i][j]);
}
}
mem(dp,0);
int ans=dfs(1,1);
printf("%d\n",ans);
} return 0;
}

hdu 1078 FatMouse and Cheese(记忆搜)的更多相关文章

  1. HDU - 1078 FatMouse and Cheese (记忆化搜索)

    FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...

  2. HDU 1078 FatMouse and Cheese (记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 老鼠初始时在n*n的矩阵的(0 , 0)位置,每次可以向垂直或水平的一个方向移动1到k格,每次移 ...

  3. HDU 1078 FatMouse and Cheese 记忆化搜索DP

    直接爆搜肯定超时,除非你加了某种凡人不能想出来的剪枝...555 因为老鼠的路径上的点满足是递增的,所以满足一定的拓补关系,可以利用动态规划求解 但是复杂的拓补关系无法简单的用循环实现,所以直接采取记 ...

  4. HDU 1078 FatMouse and Cheese (记忆化搜索+dp)

    详见代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <memory. ...

  5. hdu 1078 FatMouse and Cheese 记忆化dp

    只能横向或竖向走...一次横着竖着最多k步...不能转弯的.... 为毛我的500+ms才跑出来... #include<cstdio> #include<iostream> ...

  6. HDU 1078 FatMouse and Cheese ( DP, DFS)

    HDU 1078 FatMouse and Cheese ( DP, DFS) 题目大意 给定一个 n * n 的矩阵, 矩阵的每个格子里都有一个值. 每次水平或垂直可以走 [1, k] 步, 从 ( ...

  7. hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

    pid=1078">FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/ ...

  8. HDU 1078 FatMouse and Cheese(记忆化搜索)

    FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  9. HDU - 1078 FatMouse and Cheese(记忆化+dfs)

    FatMouse and Cheese FatMouse has stored some cheese in a city. The city can be considered as a squar ...

随机推荐

  1. TS基础笔记

    TS优势 更好的错误的提示,开发中及时发现问题:编辑器语法提示更完善:类型声明可以看出数据结构的语义,可读性更好; TS环境搭建 1.安装node;2.npm install typescript@3 ...

  2. COS控制台进阶 - 文件预览和在线编辑

    导语 | COS控制台新上线了文件预览功能,用户可在控制台内直接预览.编辑文件内容. 前不久,微软发布了 vscode for web 的公告,是基于web的在线代码编辑器,无需下载安装可以直接在we ...

  3. PHP中操作任意精度大小的GMP扩展学习

    对于各类开发语言来说,整数都有一个最大的位数,如果超过位数就无法显示或者操作了.其实,这也是一种精度越界之后产生的精度丢失问题.在我们的 PHP 代码中,最大的整数非常大,我们可以通过 PHP_INT ...

  4. 【PHP数据结构】图的应用:最小生成树

    在学习了图的基本结构和遍历方式后,我们再继续地深入学习一些图的基本应用.在之前的数据结构中,我们并没接触太多的应用场景,但是图的这两类应用确是面试或考试中经常出现的问题,而且出现的频率还非常高,不得不 ...

  5. symfony2已有数据表导入实体时报错 Doctrine does not support reverse engineering from tables that don't have a primary key

    先在配置文件 app/config/config.yml中配置 schema_filter: /^(?!(tablename))/ 即可,或者在出现问题表都加上一个id 然后再使用命令 php app ...

  6. Java基础系列(13)- 包机制

    包机制 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般利用公司域名倒置作为报名 为了能够使 ...

  7. Python return self

    在Python中,return self的作用为: Returning self from a method simply means that your method returns a refer ...

  8. struts2 使用ajax进行图片上传

    第一步:引入一个插件    jquery.form.js /*! * jQuery Form Plugin * version: 3.36.0-2013.06.16 * @requires jQuer ...

  9. 鸿蒙内核源码分析(ELF解析篇) | 你要忘了她姐俩你就不是银 | 百篇博客分析OpenHarmony源码 | v53.02

    百篇博客系列篇.本篇为: v53.xx 鸿蒙内核源码分析(ELF解析篇) | 你要忘了她姐俩你就不是银 | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应 ...

  10. 2021牛客暑期多校训练营9C-Cells【LGV引理,范德蒙德行列式】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/11260/C 题目大意 一个平面上,\(n\)个起点\((0,a_i)\)分别对应终点\((i,0)\),每次 ...