TOJ---2816--dfs(巨水)

这题 水的惨不忍睹 但是呢  因为 我心情很好 哈哈~

直接给题目 上代码...

     touch me

 1 // dfs
 2 
 3 #include <iostream>
 4 #include <cstring>
 5 #include <ctype.h>
 6 using namespace std;
 7 
 8 int n , m;
 9 int cnt;
10 const int size = 110;
11 char maze[size][size];
12 int pos[8][2] = {0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,-1,-1,1};
13 
14 void dfs( int x , int y )
15 {
16     if( x<0 || x>=n || y<0 || y>=m )
17         return;
18     for( int i = 0 ; i<8 ; i++ )
19     {
20         if( maze[ x+pos[i][0] ][ y+pos[i][1] ] == '@' )
21         {
22             maze[ x+pos[i][0] ][ y+pos[i][1] ] = '*';
23             dfs( x+pos[i][0] , y+pos[i][1] );
24         }
25     }
26 }
27 
28 int main()
29 {
30     int i , j;
31     while( ~scanf("%d %d",&n,&m) &&(n||m) )
32     {
33         cnt = 0;
34         memset( maze , '*' , sizeof(maze) );
35         for( i = 0 ; i<n ; i++ )
36         {                
37             for( j = 0 ; j<m ; j++ )
38             {
39                 do
40                 {
41                     scanf( "%c",&maze[i][j] );
42                 }while( isspace(maze[i][j]) );
43             }
44         }
45         for( i = 0 ; i<n ; i++ )
46         {
47             for( j = 0 ; j<m ; j++ )
48             {
49                 if( maze[i][j]=='@' )
50                 {
51                     cnt++;
52                     dfs( i , j );
53                 }
54             }
55         }
56         printf( "%d
",cnt );
57     }
58     return 0;
59 }
View Code

today:

  我和你 还是 都是 念旧 的人

  你说我 骗了你

  你猜对了

just follow your heart
原文地址:https://www.cnblogs.com/radical/p/3789028.html