poj1088——滑雪
来源:互联网 发布:数据训练模型 编辑:程序博客网 时间:2024/04/30 04:12
题目大意:一个人在一个滑坡区域内滑雪,只能向下斜坡滑,问最长滑坡的长度
输入:区域行数R 区域列数C(1 <= R,C <= 100)
二维数组R*C(每个数字代表点的高度h)(0<=h<=10000)
输出:最长滑坡的长度
分析:dfs+记忆化(这道题dp也可以,其实思路都一样)
从每一个点出发,dfs所能到达的最远路径,从这些点中选出长度最长的。区域中最矮的点,长度肯定为1。
代码:转载自https://www.cnblogs.com/pushing-my-way/archive/2012/07/22/2603465.html
1 #include <iostream> 2 #include <stdio.h> 3 #include <memory.h> 4 using namespace std; 5 6 const int maxnum=101; 7 int array[maxnum][maxnum]; 8 int res[maxnum][maxnum]; 9 int r,c;10 int lx[4]={-1,1,0,0};11 int ly[4]={0,0,-1,1};12 13 bool judge(int x,int y)14 {15 if(x>=1 && x<=r && y>=1 && y<=c)16 return true;17 else return false;18 }19 20 int dfs(int x,int y)21 {22 if(res[x][y]!=0) return res[x][y];23 int i;24 int big=0;25 for(i=0;i<4;i++)26 if(judge(x+lx[i],y+ly[i]) && array[x+lx[i]][y+ly[i]]<array[x][y])27 {28 res[x+lx[i]][y+ly[i]]=dfs(x+lx[i],y+ly[i]);29 if(big<res[x+lx[i]][y+ly[i]])30 big=res[x+lx[i]][y+ly[i]];31 }32 if(big>0) return big+1;33 return 1; //big==0 表示走到死胡同里了。34 //return 0 表示各个点中到最小点的距离。35 }36 37 int main()38 {39 scanf("%d%d",&r,&c);40 int i,j;41 int small,si,sj;42 small=10005;43 memset(res,0,sizeof(res));44 memset(array,0,sizeof(array));45 for(i=1;i<=r;i++)46 for(j=1;j<=c;j++)47 {48 scanf("%d",&array[i][j]);49 if(array[i][j]<small)50 {51 small=array[i][j];52 si=i;53 sj=j;54 }55 }56 57 res[si][sj]=1;58 for(i=1;i<=r;i++)59 for(j=1;j<=c;j++)60 res[i][j]=dfs(i,j);61 62 int ans=0;63 for(i=1;i<=r;i++)64 for(j=1;j<=c;j++)65 if(res[i][j]>ans)66 ans=res[i][j];67 printf("%d\n",ans);68 return 0;69 }
阅读全文
0 0
- poj1088——滑雪
- poj1088——滑雪
- POJ1088—滑雪 记忆化搜索
- poj1088——滑雪(记忆化dp)
- POJ1088 滑雪
- POJ1088 滑雪
- poj1088滑雪
- POJ1088 滑雪
- POJ1088 滑雪
- poj1088滑雪
- POJ1088 滑雪
- POJ1088滑雪
- POJ1088滑雪
- POJ1088滑雪
- poj1088 滑雪
- POJ1088--滑雪
- POJ1088-滑雪
- POJ1088 滑雪
- template模板1
- flume kafka
- Windows下配置带权限认证的MongoDB服务
- ng-bind结算
- Android数据绑定框架DataBinding,堪称解决界面逻辑的黑科技(二)
- poj1088——滑雪
- “最能激怒程序员的那些话”——十大排行榜
- 在windows 10下使用内嵌的Ubuntu系统
- Linux配置本地yum源
- 冒泡排序的优化
- Butter Knife:8.0.1的完整正确导入步骤,附加AS3.0之后的变更
- Linux 基金会又发三篇企业开源指南(附主题描述)
- Android基础学习
- JavaWeb 实现文件上传下载(笔记)