POJ-1008(滑雪)
滑雪
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(滑雪)相关推荐
- POJ 1088 滑雪(输出对比)
http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 68159 ...
- poj 1088 滑雪(线性DP)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 81553 Accepted: 30437 Description ...
- poj 1088 滑雪 详解
http://poj.org/problem?id=1088 这是一道dp入门题,不过我一直没想明白应该怎么dp.今天,在做自己学校oj的算法基础题时看到这题,标注着dp的分类,加上我一直都比较喜欢做 ...
- 动态规划 POJ 1088 滑雪
Description Michael 喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知 ...
- POJ - 1008 Maya Calendar
简单模拟,现将第一种日历表示的天数计算出来,再转换为第二种日历.注意边写边检查 POJ - 1008Maya Calendar Time Limit: 1000MS Memory Limit: 100 ...
- POJ 1088 滑雪 (动规)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 75664 Accepted: 28044 Description Mich ...
- POJ - 1088 滑雪 【DP】【DFS】
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- poj 1088 滑雪 (dp)
题目链接 题意就不多解释了,题目思路很简单,搜索就行了,但是暴搜会TLE,但是对于每一个dfs(X, Y),如果参数一样的话结果也是一样的,我们用一个二维数组去保存每次计算的位置的结果,最后从所有的解 ...
- poj 1088滑雪
经典的动态规划问题: 1 #include<iostream> 2 3 using namespace std; 4 5 int b[101][101]; 6 int d[101][101 ...
- POJ 百炼 保研机试 2965:玛雅历
2965:玛雅历 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现.从一个古老的节绳(玛雅人用于 ...
最新文章
- kohana中的路由规则
- 深度学习和目标检测系列教程 13-300:YOLO 物体检测算法
- 为什么发了个博客分分钟被各种网站花式转载=。=而不通知我
- 【C语言进阶深度学习记录】二十九 main函数与命令行参数
- 生产调度java程序原码_Rxjava的线程调度源码解析
- PHP正则表达式及实例
- 第一章 对象引论02
- 微信背后的产品观 - 张小龙内部8小时演讲
- 计算机组装与维修要学哪些,计算机组装与维修教学基本要求
- trustedinstaller权限获取教程
- 语音识别(html5+nodejs)
- Python实现求二阶行列式
- 五菱宏光MINI EV,重走“小米”路
- Pandas的列表值处理技巧,避免过多循环加快处理速度
- flutter中页面跳转之Navigator
- 《树莓派实战秘籍》——1.15 技巧15连接GPIO脚到面包板上
- barcode4j生成条形码及打印条码开发介绍
- 点击a标签,返回上一页
- ubuntu下git 常用命令
- 测试常见面试题(一)
热门文章
- 使用Acronis Disk Director Suite调整分区大小
- 一种非常简单的静态网页生成方法介绍
- Flash AS3.0中文帮助下载
- Django添加MySQL数据库
- Jquery 同个类名中点击的显示其他隐藏的效果
- sqlserver object_id()函数
- LeetCode——二叉树的最近公共祖先
- docker-for-windows配置了阿里云镜像,仍然无法获得链接:(Client.Timeout exceeded while awaiting headers)
- 缺陷架构定义及缺陷管理
- java两人猜数字游戏,三人背后猜数字游戏