博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj 1088 滑雪(记忆化搜索+动态规划)
阅读量:7113 次
发布时间:2019-06-28

本文共 1502 字,大约阅读时间需要 5 分钟。

题目

Description

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。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。

Input

输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。

Output

输出最长区域的长度。

Sample Input

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

Sample Output

25

题解

记忆化搜索其实就是一种暴力搜索加了一点点技巧而已...

代码

#include
#include
using namespace std;int A[100][100], P[100][100];int n, m;int s(int i, int j){ if (P[i][j] != 0) return P[i][j]; P[i][j] = 1; if (i > 0 && A[i - 1][j] < A[i][j]) P[i][j] = P[i][j] > (s(i - 1, j) + 1) ? P[i][j] : (s(i - 1, j) + 1); if (j > 0 && A[i][j-1] < A[i][j]) P[i][j] = P[i][j] > (s(i, j - 1) + 1) ? P[i][j] : (s(i, j - 1) + 1); if (i
(s(i + 1, j) + 1) ? P[i][j] : (s(i +1, j) + 1); if (j
(s(i, j+1) + 1) ? P[i][j] : (s(i, j+1) + 1); return P[i][j];}int main(){ scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &A[i][j]); } } int max=0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { max = max > s(i, j) ? max : s(i, j); } } printf("%d\n", max);}

转载于:https://www.cnblogs.com/zhy-ang/p/6740679.html

你可能感兴趣的文章
阿里云全球首批 MVP 赵玮专访 - 爱运动的女研究员
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 30 招 查找重复值或唯一值
查看>>
决定将代码开源之前要确定的四个问题
查看>>
Java多线程CyclicBarrier学习
查看>>
厌倦了编程书?来试试这3种提高编程技能的有趣方法吧
查看>>
《教孩子学编程(Python语言版)》——2.4 添加颜色
查看>>
并发工具类(四)两个线程进行数据交换的Exchanger
查看>>
《精通Spring MVC 4》——1.4 命令行方式简介
查看>>
Ceph分布式存储实战1.2 Ceph的功能组件
查看>>
《贝叶斯思维:统计建模的Python学习法》一2.5 封装框架
查看>>
《操作系统真象还原》——0.20 BIOS中断、DOS中断、Linux中断的区别
查看>>
爱的初体验!第二弹!多图! —— GNOME 3.10/Arch Linux
查看>>
《C++覆辙录》——1.12:嘴上无毛,办事不牢
查看>>
《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器...
查看>>
《TensorFlow技术解析与实战》——3.4 小结
查看>>
《Python高性能编程》——2.11 用dowser实时画出变量的实例
查看>>
《软件测试工程师面试秘籍》—第1章1.2节第一印象
查看>>
演讲实录丨丨Young-Jo Cho 基于网络的机器智能机器人技术的发展
查看>>
独家 | 第十届中国R会议(北京)
查看>>
《JavaScript启示录》——1.13 如何存储或复制复杂值
查看>>