《挑战程序设计》-找水洼 题解
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 }
以上是关于《挑战程序设计》-找水洼 题解的主要内容,如果未能解决你的问题,请参考以下文章
POJ 3262 Protecting the Flowers 题解 《挑战程序设计竞赛》
《挑战程序设计竞赛》课后练习题解集——3.4 熟练掌握动态规划