集训第一场,A题
dfs简单题
之前看过dfs,没实现过,第一次实现出来O(∩_∩)O~水手加油~
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int row,col; 5 char oil[1000][1000]; 6 int to[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}}; 7 void dfs(int i,int j) 8 { 9 //if(oil[i][j]=='@') 10 if(oil[i][j] != '@' || i >=row || j >= col || i < 0 || j < 0) return ; 11 oil[i][j] = '*'; 12 for(int k = 0; k < 8; k++) 13 dfs(i + to[k][0],j + to[k][1]); 14 } 15 16 int main() 17 { 18 freopen("input.txt","r",stdin); 19 int Count; 20 while(cin>>row>>col && row && col) 21 { 22 Count = 0; 23 for(int i = 0; i < row; i++) 24 for(int j = 0; j < col; j++) 25 cin>>oil[i][j]; 26 for(int i = 0; i < row; i++) 27 { 28 for(int j = 0; j < col; j++) 29 { 30 if(oil[i][j] == '@') 31 { 32 dfs(i,j);Count++; 33 } 34 35 } 36 } 37 cout<<Count<<endl; 38 } 39 return 0; 40 }