poj 1088 滑雪
2016-05-11 21:31
387 查看
滑雪
Description
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为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
Sample Output
Source
SHTSC 2002
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 89120 | Accepted: 33456 |
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
Source
SHTSC 2002
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int map[105][105],d[105][105]; bool v[105][105]; int dir[4][2]={1,0,-1,0,0,1,0,-1}; int R,C; bool limit(int x,int y){ //判断边界和是否被访问过 if(x<0||y<0||x==R||y==C||v[x][y]) return false; return true; } int dfs(int x,int y){ if(d[x][y]) return d[x][y]; //被访问过,直接返回值 for(int i=0;i<4;i++){ int xx=x+dir[i][0]; //确定方向 int yy=y+dir[i][1]; if(limit(xx,yy)&&map[x][y]>map[xx][yy]){ int temp=dfs(xx,yy); if(d[x][y]<temp+1) d[x][y]=temp+1; } } return d[x][y]; } int main(){ int i,j; memset(d,0,sizeof(d)); memset(map,0,sizeof(map)); while(scanf("%d %d",&R,&C)!=EOF){ for(i=0;i<R;i++) for(j=0;j<C;j++) scanf("%d",&map[i][j]); int result=0; for(i=0;i<R;i++) for(j=0;j<C;j++){ memset(v,0,sizeof(v)); v[i][j]=true; result=max(result,dfs(i,j)); } printf("%d\n",result+1); } return 0; }
相关文章推荐
- asp.net和asp的区别
- linux基本命令(22)——find命令参数详解
- Jetty(二)登录实现
- 新手学编程的常见困惑
- mysql 数据库建模工具 mysqlworkbench
- MySQL安装指南及常用命令(不断更新中)
- android开发中Listview中显示不同的视图布局
- Android 实现对图片 Exif 的修改(Android 自带的方法)
- Android 实现对图片 Exif 的修改(Android 自带的方法)
- 协程和多任务调度
- 快速学会过程建模之数据流图
- PVR批量转PNG
- Java集合框架之TreeMap
- 运输层分用和复用
- 解决提示 The node "nios_sys:nios_sys_inst|sdram:the_sdram|za_data[0]" has multiple drivers due错误
- 获取(验证)验证码 二分法查找数字
- [BS-19]更改UITextField的placeholder文字颜色的5种方法
- android 6.0权限适配哥哥踩过的坑
- C++基础——vector内存释放
- 基于阿里云服务器ECS的建站过程