博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1088记忆化搜索
阅读量:4991 次
发布时间:2019-06-12

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

滑雪
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 50251 Accepted: 18250

Description

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

Sample Output

25
就是从各点进行搜索,并用以数组记录搜索的结果,一遍下次搜索该处时再用
然后遍历一下该数组,找到最大的一个元素

http://www.cnblogs.com/ACShiryu

参考代码:

1 #include
2 #include
3 using namespace std; 4 int map[105][105]; 5 int f[][2]={
{
1,0},{
0,1},{
-1,0},{
0,-1}}; 6 int vis[105][105] ; 7 int m , n ; 8 int DFS ( int x , int y ) 9 {
10 if ( vis[x][y] != -1 ) 11 return vis[x][y] ; 12 int i ; 13 int sum = 1 ; 14 for ( i = 0 ; i < 4 ; i ++ ) 15 {
16 int s = x + f[i][0] ; 17 int t = y + f[i][1] ; 18 if ( s < 0 || t < 0 || s >= m || t >= n ) 19 continue; 20 if ( map[s][t] >= map[x][y] ) 21 continue; 22 sum = max ( sum , DFS ( s , t ) + 1 ) ; 23 } 24 vis[x][y] = sum ; 25 return sum ; 26 } 27 int main() 28 {
29 while ( cin >> m >> n ) 30 {
31 int sum = 0; 32 int i , j ; 33 for ( i = 0 ; i < m ; i ++ ) 34 for ( j = 0 ; j < n ; j ++ ) 35 cin >> map [i][j] ; 36 memset ( vis , -1 , sizeof ( vis ) ) ; 37 for ( i = 0 ; i < m ; i ++ ) 38 for ( j = 0 ; j < n ; j ++ ) 39 sum = max ( sum , DFS ( i , j ) ) ; 40 cout << sum << endl ; 41 } 42 return 0 ; 43 }

转载于:https://www.cnblogs.com/ACShiryu/archive/2011/08/14/poj1088.html

你可能感兴趣的文章
eclipse 僵死/假死 问题排查及解决
查看>>
番茄时间
查看>>
四位计算机的原理及其实现【转】
查看>>
mediawiki简易安装文档
查看>>
Ubuntu server 命令备忘
查看>>
yum常用操作
查看>>
MES系统框架及MES开源框架|C/S框架网软著产品
查看>>
以boost::function和boost:bind取代虚函数
查看>>
linux 下启动SVN服务
查看>>
vue框架学习
查看>>
现代计算机接口实验 (三)8255实验
查看>>
spring——获取ClassLoader
查看>>
javascript函数
查看>>
luogu4093 序列 (cdq分治优化dp)
查看>>
BZOJ 2588: Spoj 10628. Count on a tree( LCA + 主席树 )
查看>>
从零开始学算法(一)
查看>>
d3d 纹理坐标1:1对应到屏幕坐标.
查看>>
SQL Server优化器特性-隐式谓词
查看>>
国内不谈Java--硅谷有感
查看>>
hdu3371
查看>>