当前位置: 首页 > news >正文

P1434 [SHOI2002] 滑雪

P1434 [SHOI2002] 滑雪 - 洛谷

题目描述

Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:

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 - 16 - 1 (从24开始,在1结束)。当然25 - 24 - 23 - … - 3 - 2 - 1更长。事实上,这是最长的一条。

输入格式

输入的第一行为表示区域的二维数组的行数R和列数C。下面是R行,每行有C个数,代表高度(两个数字之间用1个空格间隔)。

输出格式

输出区域中最长滑坡的长度。

输入输出样例

输入#1输出#1
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

说明/提示

对于100%的数据,1≤R,C≤100。

思路:

dfs(tx, ty) + 1 的含义

当从点 (x, y) 可以滑向点 (tx, ty) 时(即满足高度递减条件,也就是 a[x][y] > a[tx][ty],其中 a 数组存储各点的高度),从点 (x, y) 出发经过点 (tx, ty) 继续滑行的路径长度就是 dfs(tx, ty) + 1。这里的 + 1 代表从点 (x, y) 滑到点 (tx, ty) 这一步。

代码:

#include <bits/stdc++.h>
using namespace std;
int R, C, a[105][105], mem[105][105];
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
// 正确的记忆化搜索:计算以 (i,j) 为起点的最长滑坡长度
int dfs(int x, int y) 
{if(mem[x][y] != -1)return mem[x][y];mem[x][y] = 1;for(int k = 0 ; k < 4 ; k++){int tx = x + dx[k];int ty = y + dy[k];if(tx >= 1 && tx <= R && ty >= 1 && ty <= C && a[x][y] > a[tx][ty]){mem[x][y] = max(mem[x][y],dfs(tx,ty) + 1);	} }return mem[x][y];
}int main() 
{cin >> R >> C;for (int i = 1; i <= R; i++){for(int j = 1 ; j <= C ; j++){cin >> a[i][j];}}memset(mem,-1,sizeof(mem));int ans = -1;for (int i = 1; i <= R; i++){for(int j = 1 ; j <= C ; j++){ans = max(ans,dfs(i,j));}}cout << ans;return 0;
}

相关文章:

  • Redis持久化:
  • 如何实现一个虚拟dom
  • 随机变量数字特征
  • 【Bootstrap V4系列】学习入门教程之 组件-按钮(Buttons)
  • [更新完毕]2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • 【科研绘图系列】R语言绘制世界地图(map plot)
  • 自己部署后端,浏览器显示久久未响应
  • 【第十六届蓝桥杯省赛】比赛心得与经验分享(PythonA 组)
  • 欺骗单页应用(SPA)渲染隐藏路由 -- trouble at the spa b01lersCTF
  • 【现代深度学习技术】现代循环神经网络04:双向循环神经网络
  • 【AI论文】DeepCritic:使用大型语言模型进行有意识的批判
  • 【深度学习的灵魂】图片布局生成模型LayoutPrompt(2)·布局序列化模块
  • Linux电源管理(5)_Hibernate和Sleep功能介绍
  • Centos9 安装 RocketMQ5
  • Windows 中使用dockers创建指定java web 为镜像和运行容器
  • 深度学习系统学习系列【2】之人工神经网络(ANN)
  • 长江学者答辩ppt美化_特聘教授_校企联聘学者_青年长江学者PPT案例模板
  • 设计模式简述(十七)备忘录模式
  • 使用线性表实现通讯录管理
  • AtCoder Beginner Contest 404(ABCDE)
  • 金球看淡,不服就干!这是抬不起腿却昂着头的劳塔罗
  • 陕南多地供水形势严峻:有的已呼吁启用自备水井
  • 世锦赛决赛今夜打响,斯诺克运动需要赵心童创造历史
  • 旧宫新语|瑞琦:再探《古玩图》——清宫艺术品的前世与今生
  • 巴菲特执掌60年,伯克希尔市值如何增长5.5万倍?详解五大经典投资案例
  • 安徽六安特色产品将“组团”入沪,借力五五购物节开拓市场