1280:【例9.24】滑雪

简介: 1280:【例9.24】滑雪

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡或等着直升机来载他,小明想知道在一个区域中最长的滑坡。滑坡的长度由滑过点的个数来计算,区域由一个二维数组给出,数组的每个数字代表点的高度。下面是一个例子:

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,在上面的例子中,一条可行的滑坡为25-24-17-16-1(从25开始到1结束),当然25-24……2-1更长,事实上这是最长的一条。

【输入】

输入的第一行为表示区域的二维数组的行数R和列数C(1≤R、C≤100),下面是R行,每行有C个数代表高度。

【输出】

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

【输入样例】

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

1. #include <iostream>
2. #include <cstdio>
3. using namespace std;
4. int dx[5]={0,-1,0,1,0};
5. int dy[5]={0,0,1,0,-1};
6. int r,c;
7. long long m[105][105],f[105][105];
8. long long search(int x,int y){//求到[x,y]点的最长路径
9.  if(f[x][y]>0) return f[x][y]; //此点长度已经求出 不必进一步递归
10.   long long nx,ny,temp,t=1;
11.   for(int i=1;i<=4;i++){
12.     nx=x+dx[i];
13.     ny=y+dy[i];
14.     if((nx>=1)&&(nx<=r)&&(ny>=1)&&(ny<=c)&&(m[x][y]<m[nx][ny])){
15.       temp=search(nx,ny)+1;
16.       if(temp>t) t=temp;
17.     }
18.   }
19.   f[x][y]=t;//记忆化存储
20.   return t;
21. }
22. int main()
23. {
24.   cin>>r>>c;
25.   for(int i=1;i<=r;i++)
26.     for(int j=1;j<=c;j++) cin>>m[i][j];
27.   long long t,ans=0;
28.   for(int i=1;i<=r;i++)//按照行的顺序 逐点求出区域中到达此点的最长路径
29.     for(int j=1;j<=c;j++){
30.       t=search(i,j);
31.       f[i][j]=t;
32.       if(t>ans) ans=t;//更新最大长度
33.     }
34.   cout<<ans<<endl;
35. return 0;
36. }


相关文章
【Axure教程】移动端图片管理、上传、分享原型
【Axure教程】移动端图片管理、上传、分享原型
【Axure教程】移动端图片管理、上传、分享原型
|
前端开发 机器人 Swift
订阅服务:GitHub 开源库更新提醒
订阅服务:GitHub 开源库更新提醒
2012 0
订阅服务:GitHub 开源库更新提醒
|
Windows
如何使用挂载磁盘和windows服务器进行文件传输?
如何远程连接windows服务器,相信对于使用过windows服务器的朋友来说这都是非常简单的事情,但是对于如何以及为什么挂载本地磁盘到windows服务器,很多新手就不明白为什么了。
1934 1
|
移动开发 JavaScript 前端开发
游戏框架 - 描述Phaser、Three.js等JavaScript游戏框架的核心功能和使用场景。
Phaser是开源2D游戏引擎,适合HTML5游戏,内置物理引擎和强大的图形渲染功能,适用于2D游戏,如消消乐。Three.js是基于WebGL的3D库,用于创建和显示3D图形,支持交互和多种3D效果,广泛应用在游戏、可视化等多个领域。两者各有侧重,选择取决于项目需求和图形交互要求。
607 3
|
9月前
|
机器学习/深度学习 自然语言处理 算法
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
大家都可以通过写 prompt 来和大模型对话,那大模型之前的算法是怎样的,算法世界经过了哪些比较关键的发展,最后为什么是大模型这条路线走向了 AGI,作者用两篇文章共5.7万字详细探索一下。
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
|
文字识别 数据可视化 项目管理
2024年知识管理软件评测:哪款工具最适合初创团队提升工作效率?
本文评测了8款适合初创企业的知识管理软件,包括板栗看板、Notion、Confluence、Evernote Business、Slack、Miro、Trello和Airtable。这些工具不仅支持高效的团队协作,还具备强大的信息管理功能,帮助企业在快速成长的过程中保持信息的有序和共享。初创企业可根据自身需求选择最适合的工具,提升团队效率。
 2024年知识管理软件评测:哪款工具最适合初创团队提升工作效率?
|
Java Android开发
安卓增加或修改现有app apk的功能(apk功能扩展)
安卓增加或修改apk android apk app的功能(apk功能扩展)
安卓增加或修改现有app apk的功能(apk功能扩展)
WK
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的特点及未来发展趋势
深度学习是人工智能关键技术,通过多层神经网络自动学习数据特征,尤其擅长处理高维复杂信息。其核心在于多层结构、自动特征提取、强大的非线性表征能力和数据驱动特性。已在计算机视觉、自然语言处理、语音识别等领域取得突破,如CNN在图像识别上的应用,RNN在文本分析中的表现。未来,深度学习将持续拓展应用范围,同时面临提高模型可解释性和保障数据安全等挑战。
WK
760 1
|
SQL 安全 网络安全
GitHub点赞飙升!电信大牛的Python渗透测试实战指南
在网络安全领域,会不会编程,是区分“脚本小子”和真正黑客的关键。实际的渗透测试中会遇到各种复杂的网络环境,常用工具不一定能满足需求,这时就需要对现有工具进行扩展,或者编写符合要求的工具、自动化脚本,这都需要一定的编程能力。在分秒必争的 CTF 竞赛中,想要高效地使用自制脚本工具来达成各种目的,更是需要有编程能力。 Python 这两年越来越火!除了语法简单、开发效率高以外,Python 最大的优势就是拥有超多第三方库。很多有名的网络安全工具和安全系统框架都是用 Python 开发的!所以,掌握 Python 编程已经成为网络安全从业者的必备技能之一。如果你想成为一名合格的安全从业者,就不能只会
|
IDE 开发工具 C++
快速开始c,配置Clion
快速开始c,配置Clion
433 0