题意:一个n*n的矩阵,每个点有若干块点心,小老鼠开始在左上角,每次最多往前走k步,且停留的点的点心数比上一次停留的点大,输出最大的i点心数

分析:停留的点数目必须比上次大,形成一个序,必定是一个DAG,那么dp[ix][y]表示从x,y出发得到的最大数量,如果已经搜索过x,y,直接返回dp[x][y]

裸的记忆话搜索

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=105;
 4 const int dx[]={0,0,1,-1};
 5 const int dy[]={1,-1,0,0};
 6 int a[maxn][maxn],dp[maxn][maxn];
 7 int n,k;
 8
 9 inline bool judge(int x,int y){
10     return x>=0&&x<n&&y>=0&&y<n;
11 }
12
13 int dfs(int x,int y){
14     if(dp[x][y])return dp[x][y];
15     int t=0;
16     for(int j=1;j<=k;j++)
17     for(int i=0;i<4;i++){
18         int nx=x+dx[i]*j;
19         int ny=y+dy[i]*j;
20         if(!judge(nx,ny))continue;
21         if(a[nx][ny]>a[x][y])t=max(t,dfs(nx,ny));
22     }
23     return dp[x][y]=a[x][y]+t;
24 }
25
26 int main(){
27
28     while(~scanf("%d%d",&n,&k)&&n>0&&k>0){
29         for(int i=0;i<n;i++)
30             for(int j=0;j<n;j++)
31                 scanf("%d",&a[i][j]);
32
33         memset(dp,0,sizeof(dp));
34         printf("%d\n",dfs(0,0));
35
36     }
37     return 0;
38 }

View Code

转载于:https://www.cnblogs.com/jihe/p/6566919.html

hdu 1078 FatMouse and Cheese(记忆化搜索)相关推荐

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

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

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

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

  3. HDU - 1078 FatMouse and Cheese

    再谈记忆化搜索 题目描述: FatMouse has stored some cheese in a city. The city can be considered as a square grid ...

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

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

  5. HDU 2452 Navy maneuvers (记忆化搜索)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2452 题意:给出一个图,n个点,m条边,保证无环,每个点有一个权值.指定一个点作为起点,Victory和G ...

  6. 【HDU - 2571】 命运(记忆化搜索)

    题干: 穿过幽谷意味着离大魔王lemon已经无限接近了!  可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关.要知道,不论何人,若在迷 ...

  7. 【HDU 1501】Zipper(记忆化搜索)

    传送门 我们记录pos1 pos2 pos3 分别代表现在字符串1,2,3的位置 然后判断pos1是否等于pos3 或者pos2是否等于pos3 分别进行dfs 然后我们发现是可以记忆化的 比方当po ...

  8. 记忆化搜索例题 记忆化搜索

    1.poj  1579 题目链接: http://poj.org/problem?id=1579 代码如下: #include <cstdio> #include <cstring& ...

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

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

最新文章

  1. 只用位运算不用算术运算实现
  2. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造
  3. 计算机开不开机是什么原因是什么原因,电脑开不了机的原因,详细教您电脑开不了机怎么办...
  4. 三种excel 多条件计数方法
  5. Maven 添加本地 jar 包、添加依赖 jar 文件到本地 Maven 仓库、引用本地 jar
  6. storm基础系列之二----zookeeper的作用
  7. 专利翻译常用计算机词汇,基于NP树的英文专利文献术语自动翻译技术研究-计算机应用技术专业论文.docx...
  8. linux32-bit是什么意思,怎么查看LINUX系统是32bit还是64bit
  9. [Ural1099]工作安排 带花树
  10. 第九天 面试失败了。。。。
  11. Java 分支与循环
  12. tp6 实现汉字转拼音
  13. 写给青春,写给军乐团
  14. 计算机硬件系统包括哪几部分组成,计算机硬件系统由哪几部分组成
  15. 如何量化炒股中的上升下降趋势及k线形态_如何量化炒股之代码思维
  16. 稳坐青梅零食第一宝座,溜溜梅凭什么?
  17. python 定时发送微信,利用python在微信中实现一个定时发送消息的功能
  18. MIPAV - Talairach ACPC transform
  19. 蓝桥杯算法训练-24点(Python)
  20. texlive和texstudio安装及使用

热门文章

  1. 软件交接需要交接哪些内容_从代理记账公司交接,需要交接哪些财务资料?
  2. java虚拟机缓存_《深入理解Java虚拟机》-- 对缓存的理解
  3. leetcode 21 java_LeetCode 21. 合并两个有序链表
  4. 计算机一级在线练习,计算机一级练习系统
  5. 集群提交HBase代码报错:Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguratio
  6. 微软纸牌服务器慢,微软为何设计纸牌和扫雷?真是用心良苦
  7. [Flink]Flink 的物理分区器
  8. HTTP缓存策略 304
  9. 现任明教教主DM×××的3G链路备份
  10. RocketMQ-安装使用