hdu1078 zoj1107(记忆化搜索/DP)

hdu1078 zoj1107(记忆化搜索/DP)题目链接:点击链接题目大意:老鼠从(0,0)出发,每次在同一个方向上最多前进k步,且每次到达的位置上的数字都要比上一个位置上的数字大,求老鼠经过的位置上的数字的和的最大值#include#include#definemax(a,b)a>b?a:bintn;intk;//前进的步数intmap[105][105];intans[105][105];//记忆化搜索,保存

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目链接:zoj    hdu

题目大意:老鼠从(0,0)出发,每次在同一个方向上最多前进k步,且每次到达的位置上的数字都要比上一个位置上的数字大,求老鼠经过的位置上的数字的和的最大值

#include<stdio.h>
#include<string.h>
#define max(a,b) a>b?a:b
int n;
int k;//前进的步数
int map[105][105];
int ans[105][105];//记忆化搜索,保存中间搜索结果
int search(int x,int y)
{
    int dx,dy;//要去的下一个位置
    int i,maxx = 0;
    if(ans[x][y] != -1) return ans[x][y];//已经搜索过,直接返回结果
    for(i = 1 ; i <= k ; i ++)//向前走的步数
    {
        dx = x - i;//向上
        if(dx >= 0 && dx < n && map[dx][y] > map[x][y])
        {
            ans[dx][y] = search(dx,y);
            maxx = max(maxx,ans[dx][y]);
        }
        dx = x + i;//向下
        if(dx >= 0 && dx < n && map[dx][y] > map[x][y])
        {
            ans[dx][y] = search(dx,y);
            maxx = max(maxx,ans[dx][y]);
        }
        dy = y - i;//向左
        if(dy >= 0 && dy < n && map[x][dy] > map[x][y])
        {
            ans[x][dy] = search(x,dy);
            maxx = max(maxx,ans[x][dy]);
        }
        dy = y + i;//向右
        if(dy >= 0 && dy < n && map[x][dy] > map[x][y])
        {
            ans[x][dy] = search(x,dy);
            maxx = max(maxx,ans[x][dy]);
        }
    }
    return maxx + map[x][y];
}
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",&map[i][j]);
        memset(ans,-1,sizeof(ans));
        printf("%d\n",search(0,0));
    }
    return 0;
}

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

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

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


相关推荐

  • spring cloud和dubbo的主要区别[通俗易懂]

    spring cloud和dubbo的主要区别[通俗易懂]1.springcloud有注册中心eurekaDubbo无用第三方的zookeeper2.Dubbo使用RPC通讯协议,提供序列化方式如下:Dubbo:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。RMI:RMI协议采用JDK标准的java.rmi.*实现,采用阻…

    2022年6月9日
    41
  • 灰度测试与AB测试_测试种类有哪些

    灰度测试与AB测试_测试种类有哪些这个“常见”,是说当我们经历多了之后,会发现这个概念其实很常见,在当前你所处的这个人群中,发现大家都挂在嘴上。在最开始的测试学习中,其实很少提到这些概念,在职业生涯的前期,也很少需要考虑这些概念。分级测试一般用在系统测试阶段。分级测试,就是说对测试进行分级,区分什么重要、什么不重要,做区别对待。之所以需要区别对待,我总结有两个原因。一个是因为资源上的限制,时间、人力,让我们没有条件来做无差别覆盖。二是本身的限制,在测试阶段,提测质量往往是不尽人意的,只能是层层深入去做测试。.

    2025年5月22日
    9
  • 阿里云服务器端口开放操作系统_阿里云防火墙端口开放

    阿里云服务器端口开放操作系统_阿里云防火墙端口开放查看是否是防火墙阻挡了firewall-cmd–zone=public–list-ports如果发现有开启了防火墙,那么就需要开放这个端口:1.添加防火墙允许的端口如(8000):firewall-cmd–zone=public–add-port=8000/tcp–permanent2.重启防火墙即可firewall-cmd–reload…

    2022年10月2日
    4
  • 宽字节注入原理_sqlmap宽字节注入

    宽字节注入原理_sqlmap宽字节注入在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。首先,宽字节注入与HTML页面编码是无关的,笔者曾经看到<metacharset=utf8>就放弃了尝试,这是一个误区,SQL注入不是XSS。虽然他们中编码的成…

    2022年10月14日
    4
  • cmd命令怎么切换盘符_windows切换盘符命令

    cmd命令怎么切换盘符_windows切换盘符命令转载于:https://www.cnblogs.com/QMM2008/p/4003039.html

    2022年10月3日
    6
  • pytest的使用_java中方法的调用

    pytest的使用_java中方法的调用Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月29日
    11

发表回复

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

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