http://acm.hdu.edu.cn/showproblem.php?pid=1078

题解:记忆化搜索

这个题可以用深搜去做,从(0,0)点出发,两层for循环记录位置,外层代表四个方向,内层是走了多少步,走到一个位置如果数值比前一步大的话,加上数值继续dfs,每次返回时更新一下最大值。在两层for循环结束后,得到的maxx的值就是该点能得到的最多奶酪数,然后将maxx赋给book[x][y]记录一下这个点的最大奶酪数,这个题有一个剪枝,如果遇到一个点它被记录过了,那么直接用就行了,不用再搜索。最后返回到主函数加上(0,0)点对应的值就好了。

/*
*@Author:   STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=1000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k;
ll ans,cnt,flag,temp;
ll a[N][N];
int b[][2]={1,0,0,1,-1,0,0,-1};
ll c[N][N];
bool vis[N][N];
char str;
void dfs(int x,int y){//printf("%d %d\n",x,y);if(c[x][y])return;c[x][y]=a[x][y];for(int i=0;i<4;i++){for(int j=1;j<=k;j++){int tx=x+b[i][0]*j;int ty=y+b[i][1]*j;if(tx<1||tx>n||ty<1||ty>n)break;if(a[x][y]<a[tx][ty]){dfs(tx,ty);c[x][y]=max(c[x][y],c[tx][ty]+a[x][y]);}}}
}int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//;//scanf("%d",&t);while(~scanf("%d%d",&n,&k)){if(n==-1&&k==-1)break;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%lld",&a[i][j]);memset(c,0,sizeof(c));dfs(1,1);printf("%lld\n",c[1][1]);}//cout << "Hello world!" << endl;return 0;
}

FatMouse and Cheese相关推荐

  1. 动态规划训练21 [FatMouse and Cheese HDU - 1078 ]

    FatMouse and Cheese HDU - 1078 这道题需要说一说,定义dp[x][y]表示从点(x,y)出发,每次走不超过k步,所能吃到的最大量. 有点难搞的是,这里递归的顺序不好确定, ...

  2. zoj 1107 FatMouse and Cheese 逆向动态规划

    FatMouse and Cheese 开始试着用深度搜索做,超时了(对于时间复杂度没有概念) 这道题用动态规划.如果用自顶向下的方法,我们不知道结尾的是哪个点,所以不方便用. 如果我们采用自下而上的 ...

  3. HDUOJ 1078 FatMouse and Cheese

    HDUOJ 1078 FatMouse and Cheese 题目链接 Problem Description FatMouse has stored some cheese in a city. T ...

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

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

  5. 【HDU - 1078】FatMouse and Cheese (记忆化搜索dp)

    题干: FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimens ...

  6. ACM DP FatMouse and Cheese

    题目: FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimens ...

  7. HDU - 1078 FatMouse and Cheese

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

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

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

  9. 记忆化搜索,FatMouse and Cheese

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1107 http://acm.hdu.edu.cn/showpro ...

  10. 计蒜客--肥肥鼠吃奶酪( FatMouse and Cheese)

    简化版题目 有一个n * n的网格,每个洞里藏有0~ 100块奶酪:仓鼠从(0,0)开始走,由于一只猫的存在,所以仓鼠每次只能水平或垂直走1~k步:由于吃了奶酪仓鼠会变胖,所以每一次走到的洞里的奶酪都 ...

最新文章

  1. 115. Leetcode 718. 最长重复子数组 (动态规划-子序列问题)
  2. C++ Primer 5th笔记(chap 14 重载运算和类型转换)输入和输出运算符
  3. QT快速入门、三点求圆心实现详解
  4. jquery : 动态构建表单自动提交请求
  5. StarUML 逆向工程插件加载失败问题解决
  6. IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
  7. iphone微信美颜插件_iOS13.5 插件分享
  8. python命令符bash_从python结构执行远程bash命令时“转义”$
  9. java 定时器 quartz_Java定时器和Quartz使用
  10. Netlink 0002 -- 什么是Netlink
  11. 软件著作权申报中60页标准代码文档的写作经验谈(1)
  12. 2015美国大学计算机科学专业排名,2015美国大学本科计算机专业排名前一百
  13. 如何设计一个风控实验?以度小满风控实验平台架构设计为例
  14. 用.Net Core接入微信公众号开发
  15. 离开 FB 两年后,Instagram 创始人干嘛去了?
  16. 你的语言模型有没有“无法预测的词”?
  17. 计算机三级相当于什么水平,【catti笔译三级证书相当于什么水平?】- 环球网校...
  18. SUMO 交通小区 OD流量建模 OD转换交通流
  19. 计算机病毒通过读写或复制移动,计算机病毒除通过读写或复制移动存储器上带病毒的文件传染外,另一条主要的传染途径是...
  20. 神州数码2855路由器ppp multilink 配置

热门文章

  1. 浅谈python_浅谈python-Django
  2. 使用计算机的好处,电脑的好处
  3. 打地鼠c语言代码_女白领在家玩打地鼠游戏,无意间学会python编程,还有教程有源码...
  4. 我的世界梦之边缘5服务器在维护吗,8月5日服务器例行维护公告(已完成)
  5. 怎么删除结构体数组中的一组数据_数据结构-栈
  6. python的datetime举例_Python datetime.timedelta()用法及代码示例
  7. style 放入css文件失效_React中使用CSS的7种方式
  8. 我的Java教程,不断整理,反复学习,记录着那些年大学奋斗的青春
  9. 【小白学习PyTorch教程】十九、 基于torch实现UNet 图像分割模型
  10. 十七、深入Python异常处理