题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078

代码1:

#include<stdio.h>//hdu 1078 记忆化搜索
#include<string.h>
#define MAX(a,b) (a>b?a:b) int n,k,dp[105][105],a[105][105]; int dfs(int i,int j)
{
if(dp[i][j]) return dp[i][j];
dp[i][j] = a[i][j]; for(int m = 1;m<=k; m++)
{
if( i+m>=1 && i+m<=n && a[i+m][j]>a[i][j] ) dp[i][j] = MAX(dp[i][j],a[i][j]+dfs(i+m,j));
if( i-m>=1 && i-m<=n && a[i-m][j]>a[i][j] ) dp[i][j] = MAX(dp[i][j],a[i][j]+dfs(i-m,j));
if( j+m>=1 && j+m<=n && a[i][j+m]>a[i][j] ) dp[i][j] = MAX(dp[i][j],a[i][j]+dfs(i,j+m));
if( j-m>=1 && j-m<=n && a[i][j-m]>a[i][j] ) dp[i][j] = MAX(dp[i][j],a[i][j]+dfs(i,j-m));
}
return dp[i][j];
} int main()
{
while(scanf("%d %d",&n,&k) && (n!=-1 || k!=-1))
{
for(int i = 1; i<=n; i++)
for(int j = 1; j<=n; j++)
scanf("%d",&a[i][j]);
memset(dp,0,sizeof(dp));
printf("%d\n",dfs(1,1));
}
return 0;
}

代码2:

#include<stdio.h>//hdu 1078 记忆化搜索
#include<string.h>
#define MAX(a,b) (a>b?a:b) int n,k,dp[105][105],a[105][105],d[4][2] = {1,0,-1,0,0,1,0,-1}; int dfs(int i,int j)
{
if(dp[i][j]) return dp[i][j];
dp[i][j] = a[i][j]; for(int t = 1; t<=k; t++)
for(int m = 0; m<4; m++)
{
int x = i+d[m][0]*t, y = j+d[m][1]*t;
if(x>=1 && x<=n && y>=1 && y<=n && a[x][y]>a[i][j])
dp[i][j] = MAX(dp[i][j], a[i][j]+dfs(x,y));
}
return dp[i][j];
} int main()
{
while(scanf("%d %d",&n,&k) && (n!=-1 || k!=-1))
{
for(int i = 1; i<=n; i++)
for(int j = 1; j<=n; j++)
scanf("%d",&a[i][j]);
memset(dp,0,sizeof(dp));
printf("%d\n",dfs(1,1));
}
return 0;
}

hdu1078 FatMouse and Cheese —— 记忆化搜索的更多相关文章

  1. hdu1078 FatMouse and Cheese(记忆化搜索)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=1078" target="_blank">http://acm. ...

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

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

  3. P - FatMouse and Cheese 记忆化搜索

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

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

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

  5. [HDOJ1078]FatMouse and Cheese(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n, k,然后给出n*n的地图,(下标0~n-1),有一只老鼠从(0,0)处出发,只能 ...

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

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

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

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

  8. HDU ACM 1078 FatMouse and Cheese 记忆化+DFS

    题意:FatMouse在一个N*N方格上找吃的,每一个点(x,y)有一些吃的,FatMouse从(0,0)的出发去找吃的.每次最多走k步,他走过的位置能够吃掉吃的.保证吃的数量在0-100.规定他仅仅 ...

  9. !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)

    题意:有一个n*n的格子.每一个格子里有不同数量的食物,老鼠从(0,0)開始走.每次下一步仅仅能走到比当前格子食物多的格子.有水平和垂直四个方向,每一步最多走k格,求老鼠能吃到的最多的食物. 分析: ...

随机推荐

  1. java并发之hashmap源码

    在上篇博客中分析了hashmap的用法,详情查看java并发之hashmap 本篇博客重点分析下hashmap的源码(基于JDK1.8) 一.成员变量 HashMap有以下主要的成员变量 /** * ...

  2. ListView 在设备切换横竖屏时保存状态

    比如listview在设备切换横竖屏时,仍然需要保证position, activity - > onSaveInstanceState  - > restoreInstanceState ...

  3. SpringBoot中如何上传Upload

    [学习笔记] 5.上传:马克-to-win@马克java社区:根据第3部分的helloworld例子,用那个项目做底子.pom.xml都不用改变.参考项目bootUpload1.static/inde ...

  4. Android图片缓存之Glide进阶(四)

    前言: 前面学习了Glide的简单使用(http://www.cnblogs.com/whoislcj/p/5558168.html),今天来学习一下Glide稍微复杂一点的使用. GlideModu ...

  5. tensorflow global_variables_initializer()

    老版本为 init = tf.initialize_all_variables() 新版本为 init = tf.global_variables_initializer()

  6. C++ 面试问题

    一面 (1) 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) (2) 动态绑定怎么实现?(就是问了一下基类与派生类指针和引用的转换问题) (3) 类型转换有哪些?(四种类型转换,分 ...

  7. 写一个dup2功能同样的函数,不能调用 fcntl 函数,而且要有出错处理

    实现的时候用到系统原来的dup函数 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write my own dup2 function / ...

  8. poj 2932 Coneology (扫描线)

    题意 平面上有N个两两不相交的圆,求全部最外层的,即不被其它圆包括的圆的个数并输出 思路 挑战程序竞赛P259页 代码 /* ************************************* ...

  9. openpyxl的使用记录

    脚本功能描述: 读取指定文件夹内的.xlsx文件,遍历提取整理信息保存到另一指定文件夹中 import openpyxl import os import shutil city='城市名' def ...

  10. vue2.0 自定义 折叠列表(Accordion)组件

    1.自定义  折叠列表 Accordion.vue (1)sass  版本 <!-- 折叠列表 组件 --> <template> <nav :class="$ ...