hdu1078 FatMouse and Cheese —— 记忆化搜索
题目链接: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 —— 记忆化搜索的更多相关文章
- hdu1078 FatMouse and Cheese(记忆化搜索)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=1078" target="_blank">http://acm. ...
- HDU - 1078 FatMouse and Cheese (记忆化搜索)
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...
- P - FatMouse and Cheese 记忆化搜索
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension ...
- HDU 1078 FatMouse and Cheese 记忆化搜索DP
直接爆搜肯定超时,除非你加了某种凡人不能想出来的剪枝...555 因为老鼠的路径上的点满足是递增的,所以满足一定的拓补关系,可以利用动态规划求解 但是复杂的拓补关系无法简单的用循环实现,所以直接采取记 ...
- [HDOJ1078]FatMouse and Cheese(记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n, k,然后给出n*n的地图,(下标0~n-1),有一只老鼠从(0,0)处出发,只能 ...
- HDU 1078 FatMouse and Cheese (记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 老鼠初始时在n*n的矩阵的(0 , 0)位置,每次可以向垂直或水平的一个方向移动1到k格,每次移 ...
- HDU 1078 FatMouse and Cheese (记忆化搜索+dp)
详见代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <memory. ...
- HDU ACM 1078 FatMouse and Cheese 记忆化+DFS
题意:FatMouse在一个N*N方格上找吃的,每一个点(x,y)有一些吃的,FatMouse从(0,0)的出发去找吃的.每次最多走k步,他走过的位置能够吃掉吃的.保证吃的数量在0-100.规定他仅仅 ...
- !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
题意:有一个n*n的格子.每一个格子里有不同数量的食物,老鼠从(0,0)開始走.每次下一步仅仅能走到比当前格子食物多的格子.有水平和垂直四个方向,每一步最多走k格,求老鼠能吃到的最多的食物. 分析: ...
随机推荐
- CDOJ 3 BiliBili, ACFun… And More! 模拟
原题链接:http://acm.uestc.edu.cn/#/problem/show/3 题意: 有个人在看B站视频时有个习惯,就是每当卡住的时候,他总再次从头开始看.另外,他在看视频时会先等待T的 ...
- Java ArrayList 详解
只记录目前为止关注的.JDK1.8 一.基础属性 1.1 内部参数 //空存储实例.直接new ArrayList()便是以该空数组作为实例 private static final Object[] ...
- PAT1001~1005AC代码
晚上了,睡不着觉,做CF把,太累了,那就来几道乙级的编程小题吧. 1001.卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 砍掉一半.这 ...
- python+OpenCV进行人脸检测【转】
OpenCV的人脸检测功能在一般场合还是不错的.而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码. 写代码之前应该先安装python-opencv: $ su ...
- git 怎样删除远程仓库的最近一次错误提交?
假设你有3个commit如下: commit 3 commit 2 commit 1 其中最后一次提交commit 3是错误的,那么可以执行: git reset --hard HEAD~1 你会发现 ...
- 深入解析Ajax——系列(一)
常常写脚本的人.有时候会用到$ajax,有时候也会用到$post和$get,这几个方法都是用来从Webserver上获取静态的数据文件. jQuery对ajax操作进行了封装,在jquery中$.aj ...
- 【HDOJ 2089】不要62
[HDOJ 2089]不要62 第一个数位dp的题 做的老困难了...只是好歹是做出来了 迈出了第一步.. 对大牛来说这样的题都是小case ps:新上一个记忆化方法 一些绕弯的题里用dfs好想些 代 ...
- Odoo 养猪
阶段 仔猪养成为肉猪 乳猪养成为仔猪 母猪繁殖乳猪 每一个饲养阶段,基本上在同一组笼舍,活动场所:进入到下一饲养阶段才会转换笼舍.在每一个饲养阶段,基本上经历以下过程 饲养 注射疫苗 饲养 投 ...
- js改变css样式
CreateTime--2017年10月31日15:14:12 Author:Marydon js改变css样式 1.js改变单个css样式 HTML部分 <div id="tes ...
- [学习笔记]Java异常机制
概述 异常 程序在执行时出现的不正常情况,是对问题的描写叙述.将问题进行对象的封装. Java中的异常,就是对不正常情况进行描写叙述后的对象体现. 异常体系 Throwable |--Erro ...