滑雪 PKU-1088

滑雪 PKU-1088

 1  #include < stdio.h >
 2  int  hill[ 110 ][ 110 ] = { 0 };
 3  int  h[ 110 ][ 110 ] = { 0 };
 4  int  dx[] = { - 1 , 0 , 1 , 0 };
 5  int  dy[] = { 0 , 1 , 0 , - 1 };
 6  int  r = 0 ,c = 0 ;
 7  int  ccbow( int  i, int  j)
 8  {
 9       int  m = 0 ;
10       if (h[i][j] > 0 )
11           return  h[i][j];
12       for (m = 0 ;m < 4 ;m ++ )
13      {
14           if (i + dx[m] > 0   &&  j + dy[m] > 0   &&  i + dx[m] <= &&  j + dy[m] <= c)
15               if (hill[i + dx[m]][j + dy[m]] < hill[i][j])
16                   if (h[i][j] < ccbow(i + dx[m],j + dy[m]) + 1 )
17                      h[i][j] = ccbow(i + dx[m],j + dy[m]) + 1 ;
18      }
19       return  h[i][j];
20      
21  }
22  int  main()
23  {
24       int  i = 0 ,j = 0 ,k = 0 ;
25      scanf( " %d%d " , & r, & c);
26       for (i = 1 ;i <= r;i ++ )
27      {
28           for (j = 1 ;j <= c;j ++ )
29          {
30              scanf( " %d " , & hill[i][j]);
31          }
32      }
33       int  maxs = 0 ;
34       for (i = 1 ;i <= r;i ++ )
35           for (j = 1 ;j <= c;j ++ )
36          {
37               if (maxs < ccbow(i,j))
38                  maxs = ccbow(i,j);
39              
40          }
41      printf( " %d\n " ,maxs + 1 );
42 
43      
44 
45 
46 
47       return   0 ;
48  }


你可能感兴趣的:(滑雪 PKU-1088)