题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物

虽然是做过的老题了,但是1A的感觉好爽,对搜索认识更深了

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 #include<map>
 8 using namespace std;
 9 #define MOD 1000000007
10 const double eps=1e-5;
11 #define cl(a) memset(a,0,sizeof(a))
12 #define ts printf("*****\n");
13 const int MAXN=1005;
14 int n,m,tt;
15 int dp[MAXN][MAXN],k;
16 int a[MAXN][MAXN];
17 int d[4][2]={0,-1,-1,0,1,0,0,1};
18 int dfs(int x,int y)    //从xy点出发所能得到的最大
19 {
20     int nx,ny,max1=0;
21     if(dp[x][y])    return dp[x][y];
22         for(int i=0;i<4;i++)
23             for(int j=1;j<=k;j++)
24             {
25                 nx=x+d[i][0]*j;
26                 ny=y+d[i][1]*j;
27                 if(nx>=0&&nx<n&&ny>=0&&ny<n&&a[nx][ny]>a[x][y])
28                 {
29                     int sum=dfs(nx,ny);
30                     max1=max(max1,sum);
31                 }
32             }
33     return dp[x][y]=max1+a[x][y];
34 }
35 int main()
36 {
37     int i,j;
38     #ifndef ONLINE_JUDGE
39     freopen("1.in","r",stdin);
40     #endif
41     while(scanf("%d%d",&n,&k)!=EOF)
42     {
43         if(n==-1&&k==-1)    break;
44         for(i=0;i<n;i++)
45             for(j=0;j<n;j++)    scanf("%d",&a[i][j]);
46         cl(dp);
47         dfs(0,0);
48         printf("%d\n",dp[0][0]);
49     }
50 }

转载于:https://www.cnblogs.com/cnblogs321114287/p/4433633.html

hdu 1078 记忆化搜索相关推荐

  1. hdu 4722(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:简单的记忆化搜索,留意一下A==0时的情况就可以了. 1 #include<iost ...

  2. hdu 1142 记忆化搜索

    题目是这样的,貌似一开始我这个英语搓的人还理解错了...orz http://acm.hdu.edu.cn/showproblem.php?pid=1142 就是最短路,只不过用dijkstra是从终 ...

  3. hdu 1514 记忆化搜索

    题意是给4堆(堆的高度小于等于40)有颜色(颜色的种类小于等于20)的物品,你有一个篮子最多能装5件物品,每次从这4堆物品里面 任取一件物品放进篮子里,但是取每堆物品时,必须先取上面的物品,才能取下面 ...

  4. hdu 1078(记忆化搜索)

    题意: 老鼠每次最多走k步停下来,停下的这个位置只能比上一个停留的位置大,并获取其价值,每次只能水平或垂直走,问最大能得到的价值 解题思路:这道题可以用记忆化搜索解决,dp[i][j]表示老鼠在位置( ...

  5. HDU 1078 FatMouse and Cheese【记忆化搜索】

    <题目链接> 题目大意: 给你一个n*n的矩阵,每个矩阵上有相应数量的奶酪,老鼠一次最多走K步,且每次只能横着走或者竖着走,并且每一次停留位置上的奶酪数一定要多余它刚才的奶酪数,求这只老鼠 ...

  6. FatMouse and Cheese HDU - 1078(记忆化搜索入门模板)

    题意: n * n的正方形格子(每个格子均放了奶酪),老鼠从(0,0)开始,每次最多移动k步,可以选择上下左右四个方向移动,下一个移动点奶酪块数量必须要大于当前点. 整理模板ing- 题目: FatM ...

  7. hdu 4597 Play Game(记忆化搜索)

    题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...

  8. HDU 1176 免费馅饼(记忆化搜索)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. HDU 漫步校园 (记忆化搜索)

    漫步校园 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

最新文章

  1. 这可能是史上功能最全的Java权限认证框架!
  2. java创建线程安全的集合
  3. list转为 数组[] 形式
  4. C++总结篇(5)vector
  5. html标签info,HtmlTrInfo 元素
  6. 将request.getParameterMap()转换成可操作的普通Map
  7. Deployment vs ReplicationController in Kubernetes
  8. ajax显示dataframe,如何使用ajax在运行时显示shell脚本的输出
  9. C++中指针和引用区别
  10. 使用QT调用FFMPEG库部署到Android设备、完成视频音频应用开发
  11. CSDN专访EnableQ在线调查引擎创作团队—软件是为用户而设计的,不是为程序员使用的
  12. 记一次有趣的诱导安装
  13. idea安装插件后无法启动
  14. 计算机word怎么插入图片,word如何插入图片 Word2003如何插入电脑中图片
  15. Honeywell全系列打印机驱动interdriver 2019.M-3
  16. 未来交通 | 中国二十城出行者“MaaS及共享出行体验”初探索
  17. p5.js创意绘图(2)自画像
  18. 点到超平面的距离公式
  19. UTF-8有BOM和无BOM的区别
  20. 并发常用的2个SQL语句

热门文章

  1. WinDbg实战调试命令笔记
  2. 详解几种飞控的姿态解算算法
  3. Think Bayes - 我所理解的贝叶斯定理
  4. CF-786B(Legacy) 区间最短路
  5. Kali Linux ver2020.4安装Google中文输入法以及nslookup、dig等工具
  6. Linux添加用户(user)到用户组(group)
  7. ERROR: org.apache.hadoop.hbase.PleaseHoldException:Master is initializing
  8. java 泛型 extends 多个
  9. XSD(Schema)教程
  10. 复合索引和一般索引的问题