首页 > 其他 > 详细

poj 1088滑雪------精简的dfs代码

时间:2014-04-14 11:07:17      阅读:372      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 #include<iostream>
 2 using namespace std;
 3 int Edge[105][105];
 4 int E[105][105];
 5 int dir[4][2]={{0, -1}, {0, 1}, {-1, 0}, {1, 0}};
 6 int Max, ma;
 7 int r ,c;
 8 bool ok( int a, int b )
 9 {
10     if( a<0||a>=r||b<0||b>=c )return false;
11     else return true;
12 }
13 void dfs( int a, int b, int cur )
14 {
15     if( E[a][b]>0 )ma=max( ma, cur+E[a][b]-1 );
16     else
17     {
18         int fla=0;
19         for( int i=0; i<4; i++ )
20         {
21             int a1=a+dir[i][0];
22             int b1=b+dir[i][1];
23             if( ok(a1, b1)&&Edge[a1][b1]<Edge[a][b] )
24             {
25             dfs( a1, b1, cur+1 );
26             fla=1;
27             }
28         }
29         if( fla==0&&ma<cur )ma=cur;
30     }
31 }
32 int main()
33 {
34 
35     int i, j;
36     cin >> r >> c;
37     for( i=0; i<r; i++ )
38         for( j=0; j<c; j++ )
39         {
40             cin >> Edge[i][j];
41             E[i][j]=0;
42         }
43     for( i=0; i<r; i++ )
44     {
45         for( j=0; j<c; j++ )
46         {
47             ma=0;
48             dfs( i, j, 1 );
49             E[i][j]=ma;
50             if(Max<ma)
51                 Max=ma;
52         }
53     }
54     cout<<Max<<endl;
55     return 0;
56 }
bubuko.com,布布扣

 

poj 1088滑雪------精简的dfs代码,布布扣,bubuko.com

poj 1088滑雪------精简的dfs代码

原文:http://www.cnblogs.com/so-easy/p/3662849.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!