hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

大家好,又见面了,我是全栈君。

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4811    Accepted Submission(s): 1945




Problem Description
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each grid location Fatmouse has hid between 0 and 100 blocks of cheese in a hole. Now he’s going to enjoy his favorite food.

FatMouse begins by standing at location (0,0). He eats up the cheese where he stands and then runs either horizontally or vertically to another location. The problem is that there is a super Cat named Top Killer sitting near his hole, so each time he can run at most k locations to get into the hole before being caught by Top Killer. What is worse — after eating up the cheese at one location, FatMouse gets fatter. So in order to gain enough energy for his next run, he has to run to a location which have more blocks of cheese than those that were at the current hole.

Given n, k, and the number of blocks of cheese at each grid location, compute the maximum amount of cheese FatMouse can eat before being unable to move. 

 


Input
There are several test cases. Each test case consists of 

a line containing two integers between 1 and 100: n and k 

n lines, each with n numbers: the first line contains the number of blocks of cheese at locations (0,0) (0,1) … (0,n-1); the next line contains the number of blocks of cheese at locations (1,0), (1,1), … (1,n-1), and so on. 

The input ends with a pair of -1’s. 

 


Output
For each test case output in a line the single integer giving the number of blocks of cheese collected. 

 


Sample Input
   
   
3 1 1 2 5 10 11 6 12 12 7 -1 -1

 


Sample Output
   
   
37

 

题意是说每次能够走(1~K)个在同一直线的位置,即不能拐弯走。

数组较大,用记忆化搜索

(类似于poj1088滑雪)

#include"stdio.h"
#include"string.h"
#include"queue"
#include"vector"
#include"stack"
#include"algorithm"
using namespace std;
#define N 105
#define max(a,b) (a>b?a:b)
int g[N][N],n,k;
int h[N][N];
int dir[4][2]={0,1,0,-1,-1,0,1,0};
int judge(int x,int y)
{
    if(x<0||x>=n||y<0||y>=n)
        return 0;
    return 1;
}
int dfs(int x,int y)
{
    if(h[x][y])
        return h[x][y];
    int i,j,u,v,t,sum=0,s1;
    t=g[x][y];
    for(i=0;i<4;i++)
    {
        for(j=1;j<=k;j++)
		{
			u=x+dir[i][0]*j;
            v=y+dir[i][1]*j;
            if(judge(u,v)&&g[u][v]>t)
            {
                s1=dfs(u,v);
                sum=max(sum,s1);
            }
		}
    }
    return h[x][y]=g[x][y]+sum;
}
int main()
{
    int i,j;
    while(scanf("%d%d",&n,&k),n!=-1||k!=-1)
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&g[i][j]);
                h[i][j]=0;
            }
        }

        int ans=dfs(0,0);
        printf("%d\n",ans);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115377.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阿里短信服务集成_阿里短信发送平台

    阿里短信服务集成_阿里短信发送平台阿里短信集成,配置流程,代码实现

    2025年7月22日
    5
  • python zipfile.zipfile_python解析json文件

    python zipfile.zipfile_python解析json文件从简单的角度来看的话,zip格式会是个不错的选择,而且python对zip格式的支持够简单,够好用。1)简单应用如果你仅仅是希望用python来做压缩和解压缩,那么就不用去翻文档了,这里提供一个简单的用法,让你一看就能明白。importzipfilef=zipfile.ZipFile(‘filename.zip’,’w’,zipfile.ZIP_DEFLATED)f.write(‘fil…

    2025年12月14日
    5
  • iscsiadm命令基本用法[通俗易懂]

    iscsiadm命令基本用法[通俗易懂]发现目标iscsiadm-mdiscovery-tsendtargets-p192.168.1.1:3260-mdiscovery指定模式为discovery-p192.168.1.1:3260指定目标ip和端口登入节点iscsiadm-mnode–Tiqn.1997-05.com.test:raid-p192.168.1.1:3260-l系统启动时自动登入iscsiadm-mnode–Tiqn.1997-05.com.test:raid-p192.16

    2022年8月23日
    8
  • 灵格斯:很好很强大的免费电子辞典「建议收藏」

    灵格斯:很好很强大的免费电子辞典「建议收藏」http://www.readfree.net/htm/200807/4624781.html 本文向大家推介近年来出现的国产免费电子辞典软件“灵格斯”(Lingoes),分为四个部分。首先是基本介绍,然后把它和几款同类软件进行了比较,接下来分享我在实用中发现的3个技巧,最后总结了有关的网址链接。本文以主观片面为原则,效果如何,请指教。1.介绍=============

    2022年7月15日
    30
  • setrequestproperty参数_setrequestproperty「建议收藏」

    setrequestproperty参数_setrequestproperty「建议收藏」场景:j2mesetRequestProperty解决办法j2mesetRequestPropertyhttpConnection里的setRequestProperty怎么用啊,我想通过手机客户端链接到服务器,并且在客户端输入关键字查询信息,在服务器那边返回查询结果给客户端——解决方案——————–加上客户端希望使用无格式的文本内容类型和GET方法请求应…

    2025年10月25日
    2
  • git clone指定分支

    git clone指定分支技术背景Git是代码版本最常用的管理工具,此前也写过一篇介绍Git的基本使用的博客,而本文介绍一个可能在特定场景下能够用到的功能–直接拉取指定分支的内容。GitClone首先看一下如果我们按照常规的操作去拉取一个Gitee的代码仓,是什么样的效果:$gitclonehttps://gitee.com/mindspore/mindscience.git正克隆到’mindsci…

    2022年7月21日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号