题目链接: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. luogu P3402 最长公共子序列

    题目背景 DJL为了避免成为一只咸鱼,来找Johann学习怎么求最长公共子序列. 题目描述 经过长时间的摸索和练习,DJL终于学会了怎么求LCS.Johann感觉DJL孺子可教,就给他布置了一个课后作 ...

  2. Java调用Python程序

    最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不 ...

  3. JavaScript世界万物诞生记

    作者:manxisuo链接:https://zhuanlan.zhihu.com/p/22989691来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一. 无中生有 起 ...

  4. 学会用core dump调试程序错误

    最来在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core du ...

  5. treeList获取目录下的所有文件

    /// <summary>/// treeList获取目录下的所有文件/// </summary>public static void InitTreeListGetFiles ...

  6. Cucumber+Rest Assured快速搭建api自动化测试平台

    转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/ 什么是 ...

  7. IntelliJ IDEA 10.5.1 引用外部Jar包

    具体步骤: File -> Project Structure (ctrl + shift + alt + s ) -> Module -> Dependencies -> A ...

  8. Can&#39;t open named pipe to host: . pipe: MySQL

    今天遇到mysql连接odbc时报例如以下错误:Can't open named pipe to host: . pipe: MySQL 错误截图例如以下: 依照网上说的方法包含mysql的官方说法都 ...

  9. 笔记03 wpf 在MVVM模式下怎样在Viewmodel里面获得view的控件对象

     转自http://blog.csdn.net/qing2005/article/details/6601199http://blog.csdn.net/qing2005/article/detail ...

  10. [转]FTP服务器搭建

    下面先说第一中方法: 1.在win7上先开启ftp服务:这里点击确定后,可能会要等一会儿,完成后有时系统会提示重启 2.打开   计算机-->管理-->   在这里我们可以看见刚刚添加的服 ...