《挑战程序设计》-找水洼 题解

Posted moyra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《挑战程序设计》-找水洼 题解相关的知识,希望对你有一定的参考价值。

《挑战程序设计》-找水洼 题解

2019-12-01

Powered by WSY

1.题目传送门:http://poj.org/problem?id=2386

2.题目思路:这道题其实是一个非常简单的搜索,我们只需要对于每一个点,向他的8个方向搜索就可以了。

3.代码:最后给大家粘一个福利(AC代码来源于:https://blog.csdn.net/qq_33929112/article/details/52627070)

 

技术图片
 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
",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

 

 

 

以上是关于《挑战程序设计》-找水洼 题解的主要内容,如果未能解决你的问题,请参考以下文章

POJ 3262 Protecting the Flowers 题解 《挑战程序设计竞赛》

解决方案电影标题中缺少代码的片段,完成挑战更多[关闭]

《挑战程序设计竞赛》课后练习题解集——3.4 熟练掌握动态规划

AOJ 0033 Ball 题解 《挑战程序设计竞赛》

POJ 1862 Stripies 题解 《挑战程序设计竞赛》

POJ 3187 Backward Digit Sums 题解 《挑战程序设计竞赛》