记忆化搜索-滑雪

news2024/11/18 21:54:11

题意

给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。

矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。

一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。

当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。

下面给出一个矩阵作为例子:

 1  2  3  4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。

在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。

现在给定你一个二维矩阵表示滑雪场各区域的高度,请你找出在该滑雪场中能够完成的最长滑雪轨迹,并输出其长度(可经过最大区域数)。

输入格式

第一行包含两个整数 R 和 C。

接下来 R 行,每行包含 C 个整数,表示完整的二维矩阵。

输出格式

输出一个整数,表示可完成的最长滑雪长度。

数据范围

1≤R,C≤300,
0≤矩阵中整数≤10000

输入样例:

5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

输出样例:

25

分析

 代码

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
const int N=310;
int n,m;
int h[N][N];
int f[N][N];
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};

int dp(int x,int y){
	int &v=f[x][y];
	if(v!=-1)return v;
	v=1;
	for(int i=0;i<4;i++){
		int a=x+dx[i],b=y+dy[i];
		if(a>=1&&a<=n&&b>=1&&b<=m&&h[a][b]<h[x][y]){
			v=max(v,dp(a,b)+1);
		}
	}
	return v;
}

int main(){
	
	std::ios::sync_with_stdio(false),std::cin.tie(nullptr),std::cout.tie(nullptr);
	
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>h[i][j];
		}
	}
	memset(f,-1,sizeof f);
	
	int res=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			res=max(res,dp(i,j));
		}
	}
	cout<<res<<endl;
	return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记:基于U-Net深度学习网络的地震数据断层检测

0 论文简介 论文&#xff1a;基于U-Net深度学习网络的地震数据断层检测 发表&#xff1a;2021年发表在石油地球物理勘探 1 问题分析和主要解决思路 问题&#xff1a;断层智能识别&#xff0c;就是如何利用人工智能技术识别出断层。 解决思路&#xff1a;结合&#xff35;-N…

nginx快速入门

本文应侧重操作应用&#xff0c;复杂原理详见相关理论类笔记 Nginx 快速入门笔记 Nginx 的简介 1. 什么是 nginx ​ Nginx 可以作为静态页面的 web 服务器&#xff0c;同时还支持 CGI 协议的动态语言&#xff0c;比如 perl、php等。但是不支持 java。Java 程序只能通过与 t…

tauri+rust 构建项目

文章目录 安装前依赖创建项目第一步第二步第三步最后一步 调试 昨天菜鸟尝试使用 taurirust 构建项目&#xff0c;按照网上的感觉都不是很全&#xff0c;所以这里菜鸟自己总结一下&#xff0c;主要是给自己今后学习 taurirust 使用的&#xff0c;当然也不知道会不会去学&#x…

全球医疗器械研发投入前十,这家中国公司领跑榜单

2023年&#xff0c;《医疗设计》杂志公布了最新一期百强榜&#xff0c;评选出了2022全球医疗器械行业最高研发支出和项目的十家公司。这些公司的每年研发支出超过收入的15%。尽管经济面临逆风&#xff0c;医疗器械行业的销售额却创下了新的历史高点&#xff0c;研发支出也加速增…

多通道振弦传感器无线采集仪 多类型数字传感器独立发送协议

多通道振弦传感器无线采集仪 多类型数字传感器独立发送协议 独立发送传感器数据时&#xff0c;每个传感器是一个独立的数据包&#xff0c;发送至预设的 TCP 服务器。 数据包字符串&#xff0c;结构说明如下&#xff1a; UDID>MDS传感器类型码第 x 个传感器>第 x 包/总 x …

K8s中内置的Prometheus 异常,不断重启的解决方案

要说明的一点是&#xff1a;此处理方式会进行数据的删除&#xff0c;并且多实例情况下最好都做下操作。多实例都操作一遍的意思就是比如我普罗米修斯有如下四个&#xff1a; 如果Prometheus-k8s-0一直重启&#xff0c;则不光需要操作Prometheus-k8s-0&#xff0c;也需要对它的…

VC++如何获取所有运行中的Word实例的COM对象

目录 一 问题的提出二 工程创建2.1 创建一个基于对话框的MFC工程2.2 导入word相关的自动化包装类 三 代码实例3.1 初始化COM库3.2 对话框类头文件修改3.3 对话框类实现文件1.根据进程名称获取进程ID2. 获取一个进程下所有的窗口3. 判断某个窗口是否为主窗口4. 判断word进程下面…

数字ic验证工程师经典笔试面试题(含答案)

数字ic验证工程师在找工作时&#xff0c;刷笔试面试题必不可少&#xff0c;在面试前做好充足的准备才能抓住更多的机会&#xff0c;今天小编为大家准备了数字ic验证工程师大厂面试常用笔试面试题。 下列关于代码覆盖率描述错误的是&#xff1a;CD A.代码覆盖率包括语句覆盖率…

用CD4051 实现八档位可变 / 可编程增益同相比例运放电路

CD4051 相当于一个单刀八掷的开关&#xff0c;一个公共端对应另一边八个档位&#xff0c;如下图。左边的Z 就是公共端的“单刀”&#xff0c;右边Y0 到Y7 是“八掷”&#xff0c;用A0、A1、A2 三位选择这八个档位。基于CD4051 的变增益电路实现的原理是一致的&#xff0c;只是细…

国际十大正规现货黄金交易平台排名(2023年优质版)

在现今这个时代&#xff0c;投资理财是在平常不过的了&#xff0c;但是在投资市场中黄金是最为热门的产品之一&#xff0c;而黄金投资市场中现货黄金因行情变化快、盈利机会多、多空双向交易机制而获得人们广泛喜爱和选择的主要理由&#xff0c;由于现货黄金的发展史起源于国外…

《PyTorch 深度学习实践》第12讲 循环神经网络(基础篇)

文章目录 1 什么是RNN&#xff1f;1.1 原理1.2 维度说明 2 一些琐碎代码2.1 RNNCell2.2 RNN2.3 RNN参数&#xff1a;batch_first 3 例子&#xff1a;序列变换把 "hello" --> "ohlol"3.1 使用RNNCell3.2 使用RNN3.3 使用embedding and linear layer嵌入&…

迅为iTOP4412精英版Visual Studio Code 插件安装

我们在此以 ubuntu 环境为例&#xff0c;讲解 Visual Studio Code 插件安装。 VSCode 支持多种语言&#xff0c;比如 C/C、Python、C#等等&#xff0c;对于嵌入式开发的我们主要用来编写 C/C程 序的&#xff0c;所以需要安装 C/C的扩展包&#xff0c;扩展包安装很简单&#x…

【 SpringBoot单元测试 和 Mybatis 增,删,改 操作 】

文章目录 一、Spring-Boot单元测试(了解)1.1 概念1.2 单元测试引用1.3 单元测试的实现1.4 简单的断言说明1.5 单元测试优点 二、Mybatis 增&#xff0c;删&#xff0c;改 操作2.1 增加⽤户操作2.2 修改⽤户操作2.3 删除⽤户操作 一、Spring-Boot单元测试(了解) 1.1 概念 单元测…

Java设计模式-day02

4&#xff0c;创建型模式 4.2 工厂模式 4.2.1 概述 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类&#xff08;Coffee&#xff09;&#xff0c;并定义其两个子类&#xff08;美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】&#xff09;&#xff1b;再设…

找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll

找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 找不到msvcp140d.dll vcruntime140d.dll ucrtbased.dll 链接&#xff1a;https://pan.baidu.com/s/15O9cRwexHp4nzZj8eYVfnw 提取码&#xff1a;4iyr --来自百度…

FPGA基于XDMA实现PCIE X8的HDMI视频采集 提供工程源码和QT上位机程序和技术支持

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证9、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI Express&#xff09;采用了目前业内流行的点对点串行连接&#xff0c;比起 PC…

No.044<软考>《(高项)备考大全》【第27章】运筹学计算(典型考题思路讲解)

【第27章】运筹学计算&#xff08;典型考题思路讲解&#xff09; 1 章节概述1.1 运筹学计算涉及到的题型2 最优的函数值3 线性规划题1题2题3 4 动态规划 投资收益最大的问题5 最小生成树题1题2题3 6 匈牙利法题1题2 7 最短最长路径问题题1题2题3题4题5题6题7 8 最大流量问题9 决…

Java-String类

文章目录 写在前面1 String类的常用方法1.1 字符串的构造1.2 String对象的比较1. 利用 比较是否引用同一对象2. 利用equals() 方法比较3. 利用compareTo 方法比较两个字符串的4.利用compareToIgnoreCase方法比较(忽略大小写) 1.3字符串查找1.4转化1. 数值和字符串的转化2. 大小…

关于java.io的学习记录(读取文本)

可以通过字节流&#xff08;FileInputStream&#xff09;、字符流&#xff08;InputStreamReader&#xff09;、字符缓冲流&#xff08;BufferedReader&#xff09;读取文本中的数据。 1、FileInputStream读取文本 public void read(){String path "fileTest.txt";F…

浅测SpringBoot环境中使用WebSocket(多端实时通信)

目录 概述 测试&#xff1a;前端代码 后端代码&#xff08;SpringBoot环境&#xff09; 1.创建处理器类&#xff08;用于处理连接和消息&#xff09; 2.创建配置类&#xff08;用于注册处理器类&#xff0c;开启WebSocket&#xff09; 连接测试 概述 这篇博客主要是记录测试…