《挑戰程序設計》-找水窪 題解

《挑戰程序設計》-找水窪 題解ios

2019-12-01ide

Powered by WSY spa

1.題目傳送門:http://poj.org/problem?id=2386.net

2.題目思路:這道題實際上是一個很是簡單的搜索,咱們只須要對於每個點,向他的8個方向搜索就能夠了。設計

3.代碼:最後給你們粘一個福利(AC代碼來源於:https://blog.csdn.net/qq_33929112/article/details/52627070)
code

 

 1 #include <iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define maxn 105
 5 char field[maxn][maxn];
 6 int n,m;
 7 void dfs(int x,int y)
 8 {
 9 field[x][y]='.';
10 //循環遍歷八個方向
11 for(int dx=-1;dx<=1;dx++){
12 for(int dy=-1;dy<=1;dy++){
13 int nx=x+dx,ny=y+dy;
14 //判斷(nx,ny)是否在園子裏,以及是否有積水
15 if(0<=nx&&nx<n&&0<=ny&&ny<m&&field[nx][ny]=='W'){
16 dfs(nx,ny);
17 }
18 }
19 }
20 }
21 void solve()
22 {
23 int res=0;
24 for(int i=0;i<n;i++){
25 for(int j=0;j<m;j++){
26 if(field[i][j]=='W'){
27 //從有積水的地方開始深搜
28 dfs(i,j);
29 res++;
30 }
31 }
32 }
33 printf("%d\n",res);
34 }
35 int main()
36 {
37 scanf("%d%d",&n,&m);
38 for(int i=0;i<n;i++){
39 for(int j=0;j<m;j++){
40 cin>>field[i][j];
41 }
42 }
43 solve();
44 return 0;
45 }
View Code
相關文章
相關標籤/搜索