博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数池塘
阅读量:7097 次
发布时间:2019-06-28

本文共 1031 字,大约阅读时间需要 3 分钟。

题目大意:

农夫约翰的农场可以表示成N*M(1<=N<=100,1<=M<=100)个方格组成的矩形。由于近日的降雨,在约翰农场上的不同地方形成了池塘。每一个方格或者有积水(’W’)或者没有积水(’.’)。农夫约翰打算数出他的农场上共形成了多少池塘。一个池塘是一系列相连的有积水的方格,每一个方格周围的八个方格都被认为是与这个方格相连的。

现给出约翰农场的图样,要求输出农场上的池塘数。

解题思路:

bfs吧,dfs也可以,找到一个有积水的方格,把周围八个方格找一遍,找到后清除,直到没有为止~

源程序:

#include 
using namespace std;char c;int ans,n,a[101][101],m,o,dx[9]={0,0,0,1,-1,1,-1,-1,1},dy[9]={0,1,-1,0,0,-1,1,-1,1},father[20001],state[20001][3];//dx,dy数组为八个方向void bfs(int x,int y){ int head=0,tail=1; a[x][y]=0;o=1;state[1][1]=x;state[1][2]=y; do { head++; for (int i=1;i<=8;i++) { int x=state[head][1]+dx[i]; int y=state[head][2]+dy[i]; if (x>0&&y>0&&x<=n&&y<=m&&a[x][y]) { tail++; father[tail]=head; state[tail][1]=x; state[tail][2]=y; a[x][y]=0;//找到之后清除并接着往下找 o++; } } } while(head

End

转载于:https://www.cnblogs.com/Juruo-HJQ/p/9306939.html

你可能感兴趣的文章
Redefine:Change in the Changing World
查看>>
POJ 3436 ACM Computer Factory 最大流
查看>>
atitit。全局变量的设计与实现 java php的异同
查看>>
自己定义控件-画板,橡皮擦,刮刮乐
查看>>
spark 按照key 分组 然后统计每个key对应的最大、最小、平均值思路——使用groupby,或者reduceby...
查看>>
顺序表示的线性表——顺序表
查看>>
categorys源码
查看>>
C与asm链接和内嵌
查看>>
349元我们应该有什么样的期待-原道N12豪华版 RK2906入手初体验
查看>>
简单PHP留言板之三 —— 头部文件以 及单 独设置PHP文件编码
查看>>
Android中Context
查看>>
WordPress超级基本教程(转)
查看>>
Python基础 3----文件和网络
查看>>
模块的耦合和内聚
查看>>
对话框
查看>>
迁移SQL SERVER 数据库实例
查看>>
HttpClient工具类v1.7
查看>>
Sqlite中使用rowid来表示行号,用于分页。
查看>>
HDU 4916 树形dp
查看>>
远程数据库迁移数据
查看>>