好吧前几天一直没更新博客,主要是更新博客的确是要耗费一点精力

             DFS:Lake Counting(POJ 2386)-LMLPHP

             北大教你数水坑

  最近更新博客可能就是一点旧的东西和一些水题,主要是最近对汇编感兴趣了嘻嘻嘻

  这一题挺简单的,没什么难度,简单深搜

#include <stdio.h>
#include <stdlib.h> typedef int Postion; static int Lake[][];
static int N, M; void DFS(Postion, Postion); int main(void)
{
int i, j, pool = ;
while (~scanf("%d%d",&N,&M))
{
for (i = ; i < N; i++)//读图
{
getchar();//别忘了现在是输入的是字符,一定要把回车键拿掉
for (j = ; j < M; j++)
scanf("%c", &Lake[i][j]);
} for (i = ; i < N; i++)
for (j = ; j < M; j++)
if (Lake[i][j] == 'W')
{
DFS(i, j);
pool++;
}
printf("%d\n", pool);
}
} void DFS(Postion x, Postion y)
{
int i, j;
Postion toi, toj;
Lake[x][y] = '.';//搜索过的地方就置换成. for (i = -; i <= ; i++)
for (j = -; j <= ; j++)
{
toi = x + i; toj = y + j;
if (toi >= && toi < N
&& toj >= && toj < M//坐标均在图内
&& Lake[toi][toj] == 'W'//且没进入搜索过
)
DFS(toi, toj);
}
}
05-11 14:42