滑雪

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 91574   Accepted: 34573

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

dp,用记忆化搜索
 1 //2016.8.5
 2 //POJ1088
 3 #include<iostream>
 4 #include<cstdio>
 5 #include<cstring>
 6
 7 using namespace std;
 8
 9 int n, m;
10 int h[105][105];
11 int dp[105][105];
12 int dx[4] = {0, 1, 0, -1};
13 int dy[4] = {1, 0, -1, 0};
14
15 int dfs(int x, int y)
16 {
17     if(dp[x][y])return dp[x][y];//记忆化搜索
18     int tmp, maxl = 0;
19     for(int i = 0; i < 4; i++)
20     {
21         int nx = x+dx[i];
22         int ny = y+dy[i];
23         if(nx>=0&&nx<n&&ny>=0&&ny<m&&h[nx][ny]<h[x][y])
24         {
25             tmp = dfs(nx, ny);
26             if(tmp>maxl)maxl = tmp;
27         }
28     }
29     return dp[x][y] = maxl+1;
30 }
31
32 int main()
33 {
34     while(cin>>n>>m)
35     {
36         for(int i = 0; i < n; i++)
37           for(int j = 0; j < m; j++)
38             scanf("%d", &h[i][j]);
39         memset(dp, 0, sizeof(dp));
40         for(int i = 0; i < n; i++)
41           for(int j = 0; j < m; j++)
42             dfs(i, j);//dp每个点为起点能滑的最大长度
43         int maxlen = 0;
44         for(int i = 0; i < n; i++)
45           for(int j = 0; j < m; j++)
46             if(dp[i][j]>maxlen)
47               maxlen = dp[i][j];
48         cout<<maxlen<<endl;
49     }
50
51     return 0;
52 }

转载于:https://www.cnblogs.com/Penn000/p/5742806.html

POJ1088(dp)相关推荐

  1. dp打开思路3:HDU1069 POJ3616 POJ1088

    HDU 1069 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意:把给定的长方体(不限)叠加在一起,叠加的条件是,上面一个长方体的长和宽都 ...

  2. POJ1088:滑雪(简单dp)

    题目链接:  http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...

  3. POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  4. (DFS+DP)滑雪(poj1088)

    题目 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底 ...

  5. POJ1088滑雪问题 简单dp(动态规划)已AC

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 99422   Accepted: 37756 Description ...

  6. 滑雪道c语言程序,POJ1088 滑雪 dp C语言

    Description Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载 ...

  7. POJ1088 滑雪 dp入门 记忆化搜索

    题意:给你一个r*c的矩阵,只能从图上数字大的地方滑向数字小的地方,问你一次性最多滑过多少个数字. 思路:记忆化搜索.顺序搜索,记录地图上每一个点出发所能达到的最远长度,若某一点标记过说明当前点的最远 ...

  8. NUC_HomeWork1 -- POJ1088(DP)

    D - 滑雪 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Mic ...

  9. POJ1088(记忆搜索加dp)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 106415   Accepted: 40499 Description ...

  10. 007:滑雪(百练/POJ1088)(DFS+DP)

    总时间限制: 1000ms 内存限制: 65536kB 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者 ...

最新文章

  1. sketchup 255个su常用插件)_SketchUp领域的知乎,有胆来问!
  2. 使用using与typedef来定义别名
  3. mysql 批量添加字段前缀_MySQL中批量前缀表的sql语句
  4. mysql win10 优化设置_windows10如何优化?系统优化设置方法
  5. 华为徐直军:以持续创新加快数字化发展
  6. 微信小程序|area组件使用的地址数据文件
  7. 学python有前途吗-python有前景吗
  8. 福州计算机专业的大学的校徽,如此好看的大学LOGO,有你的母校吗?
  9. 整合并接班MSN!Win8版Skype完全体验
  10. pom文件无法加载ojdbc14-10.2.0.4.0.jar
  11. 软件测试之TCP、UPD协议详解
  12. 没所谓移动开发寒冬,不过是大鱼吃小鱼
  13. 独立显卡的电脑找不到独立显卡该怎么办
  14. representation learning的理解
  15. transformer 模型的decoder部分 带gif动图
  16. Web前端学习笔记07:CSS_高级技巧_定位
  17. 小程序云服务器机型选择,小程序云服务器机型选择
  18. 调查结果:您使用什么.NET Framework功能?
  19. struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览
  20. 如何让标书脱颖而出?

热门文章

  1. 蓝牙学习笔记(二)——低功耗蓝牙(BLE)的体系结构
  2. 计算机组成原理:原码、补码一位乘,Booth算法
  3. 变长编码中前缀码的概念
  4. scala zip--拉链操作入门
  5. Dediprog EM100Pro-G2 CmdLine教程
  6. Windows核心编程_LOG软件
  7. 每周一个 Python 模块 | array
  8. 通信业正面临一场巨变,要么滚蛋要么改变
  9. ABP源码分析二十八:ABP.MemoryDB
  10. 正则表达式那些事儿(一)