博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-1088(DP,DFS)
阅读量:7239 次
发布时间:2019-06-29

本文共 1493 字,大约阅读时间需要 4 分钟。

1088:滑雪

时间限制:
1000ms
内存限制:
65536kB
描述
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更长。事实上,这是最长的一条。
输入
输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
输出
输出最长区域的长度。
样例输入
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
样例输出
25

#include"iostream" #include"cstring" using namespace std; int len[100][100]; bool vis[100][100]; int h[100][100]; int dir[4][2]={

{0,1},{0,-1},{-1,0},{1,0}}; int row,col; int temp_x,temp_y,temp_len; int dp(int x,int y) {if(vis[x][y])return len[x][y];else{for(int i=0;i<4;i++){temp_x=x+dir[i][0];temp_y=y+dir[i][1];if(temp_x>=0&&temp_x<=row-1&&temp_y>=0&&temp_y<=col-1){if(h[temp_x][temp_y]<h[x][y])//如存在较低点{temp_len=dp(temp_x,temp_y)+1;//可能最大长度if(temp_len>len[x][y])//随时更新,动态规划的精髓所在len[x][y]=temp_len;}}//end if}//end forvis[x][y]=true;//应放在后面,堆栈展开返回后才确定当前点已访问return len[x][y];} } int main() {cin>>row>>col;for(int i=0;i<row;i++)for(int j=0;j<col;j++){cin>>h[i][j];len[i][j]=1;//不要用memset吖,你懂的}memset(vis,false,sizeof(vis));int max=0;int temp_dp;//节省时间开支所用for(int i=0;i<row;i++)for(int j=0;j<col;j++)//这个循环中,前面的vis,len等信息可能会在后面的dp递归中用到,大大节省了时间{temp_dp=dp(i,j);//dp的参数表示的是当前最高点if(max<temp_dp)max=temp_dp;}cout<<max<<endl; }

转载于:https://www.cnblogs.com/lzhitian/archive/2012/01/25/2329312.html

你可能感兴趣的文章
NewtonSoft对象转json时,把 NULL 转 "" , 过滤 NULL, DateTime 时间类型去除 T
查看>>
数据库索引
查看>>
华为交换机常用配置命令
查看>>
PHPUnit学习02---如何管理TestCase
查看>>
[MySQL] 索引中的b树索引
查看>>
git/github常用指令、入门
查看>>
GIT的Push和Pull,强制Pull覆盖本地命令
查看>>
Spring IoC 的基本使用
查看>>
据说每个大牛、小牛都应该有自己的库——Ajax
查看>>
ODPS功能介绍之数据导入
查看>>
关于拼接页面,单引号,双引号的简单总结
查看>>
Html 文字排版
查看>>
西风 West Wind Html帮助构建器
查看>>
面试杂碎01
查看>>
关于Redis数据过期策略
查看>>
mysql中limit的用法详解[数据分页常用]
查看>>
关于Log4Net的使用
查看>>
LaTeX argmin argmax 下标使用方法
查看>>
MarkDown 图片大小问题
查看>>
网站推广:如何进行视频推广
查看>>