滑雪

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

 1  2  3  4 516 17 18 19 615 24 25 20 714 23 22 21 813 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

题目链接:

http://poj.org/problem?id=1088

题意描述:

给你一个m*n的矩阵,然后从某一点出发只能往低的地方滑,求最多能滑多少步。

解题思路:

直接每个点都深搜一次的话超时,解决方法可以是把走过的点记录下来,当再次搜到这种点时直接把该点往后走的步数加上即可。

程序代码:

#include<stdio.h>
#include<string.h>int m,n;
int a[110][110];
int dp[110][110];int dfs(int x,int y);int main()
{int i,j,maxn,temp;while(scanf("%d%d",&m,&n)!=EOF){memset(a,0,sizeof(a));memset(dp,0,sizeof(dp));for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);maxn=0;for(i=1;i<=m;i++)for(j=1;j<=n;j++){temp=dfs(i,j);if(temp>maxn)maxn=temp;}printf("%d\n",maxn);   }return 0;
}int dfs(int x,int y)
{int k,tx,ty;int next[4][2]={1,0,-1,0,0,1,0,-1};int maxn=0,temp;if(x>m||y>n||x<1||y<1) return 0;if(dp[x][y]!=0)//如果if成立,则该点已经搜过 return dp[x][y];for(k=0;k<4;k++){tx=x+next[k][0];ty=y+next[k][1];if(a[tx][ty]<a[x][y]){temp=dfs(tx,ty);if(temp>maxn)maxn=temp;}}return dp[x][y]=maxn+1;
}

POJ-1008(滑雪)相关推荐

  1. POJ 1088 滑雪(输出对比)

    http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 68159 ...

  2. poj 1088 滑雪(线性DP)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 81553   Accepted: 30437 Description ...

  3. poj 1088 滑雪 详解

    http://poj.org/problem?id=1088 这是一道dp入门题,不过我一直没想明白应该怎么dp.今天,在做自己学校oj的算法基础题时看到这题,标注着dp的分类,加上我一直都比较喜欢做 ...

  4. 动态规划 POJ 1088 滑雪

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

  5. POJ - 1008 Maya Calendar

    简单模拟,现将第一种日历表示的天数计算出来,再转换为第二种日历.注意边写边检查 POJ - 1008Maya Calendar Time Limit: 1000MS Memory Limit: 100 ...

  6. POJ 1088 滑雪 (动规)

    滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 75664 Accepted: 28044 Description Mich ...

  7. POJ - 1088 滑雪 【DP】【DFS】

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

  8. poj 1088 滑雪 (dp)

    题目链接 题意就不多解释了,题目思路很简单,搜索就行了,但是暴搜会TLE,但是对于每一个dfs(X, Y),如果参数一样的话结果也是一样的,我们用一个二维数组去保存每次计算的位置的结果,最后从所有的解 ...

  9. poj 1088滑雪

    经典的动态规划问题: 1 #include<iostream> 2 3 using namespace std; 4 5 int b[101][101]; 6 int d[101][101 ...

  10. POJ 百炼 保研机试 2965:玛雅历

    2965:玛雅历 查看 提交 统计 提示 提问 总时间限制:  1000ms  内存限制:  65536kB 描述 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现.从一个古老的节绳(玛雅人用于 ...

最新文章

  1. kohana中的路由规则
  2. 深度学习和目标检测系列教程 13-300:YOLO 物体检测算法
  3. 为什么发了个博客分分钟被各种网站花式转载=。=而不通知我
  4. 【C语言进阶深度学习记录】二十九 main函数与命令行参数
  5. 生产调度java程序原码_Rxjava的线程调度源码解析
  6. PHP正则表达式及实例
  7. 第一章 对象引论02
  8. 微信背后的产品观 - 张小龙内部8小时演讲
  9. 计算机组装与维修要学哪些,计算机组装与维修教学基本要求
  10. trustedinstaller权限获取教程
  11. 语音识别(html5+nodejs)
  12. Python实现求二阶行列式
  13. 五菱宏光MINI EV,重走“小米”路
  14. Pandas的列表值处理技巧,避免过多循环加快处理速度
  15. flutter中页面跳转之Navigator
  16. 《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上
  17. barcode4j生成条形码及打印条码开发介绍
  18. 点击a标签,返回上一页
  19. ubuntu下git 常用命令
  20. 测试常见面试题(一)

热门文章

  1. 使用Acronis Disk Director Suite调整分区大小
  2. 一种非常简单的静态网页生成方法介绍
  3. Flash AS3.0中文帮助下载
  4. Django添加MySQL数据库
  5. Jquery 同个类名中点击的显示其他隐藏的效果
  6. sqlserver object_id()函数
  7. LeetCode——二叉树的最近公共祖先
  8. docker-for-windows配置了阿里云镜像,仍然无法获得链接:(Client.Timeout exceeded while awaiting headers)
  9. 缺陷架构定义及缺陷管理
  10. java两人猜数字游戏,三人背后猜数字游戏