poj2386 DFS
来源:互联网 发布:linux cron命令每周三 编辑:程序博客网 时间:2024/06/08 13:08
深度优先搜索
核心的dfs程序就是每遇到一个W首先将它变为.然后扩展到周围8个位置坐标检验是否为W 若为W就继续搜索 直至周围都是. 算作一次dfs 最后统计dfs的次数
需要注意的是输入 可以直接输入字符串;或者按照字符输入,但要在每一行末尾接收一个回车
#include <stdio.h>
int N,M;
char field[200][200];
/*void dfs(int x, int y){
field[x][y]='.';
for(int dx=-1;dx<=1;dx++){
for(int dy=-1;dy<=1;dy++){
int nx=x+dx,ny=y+dy;;
if((0<=nx)&&(nx<N)&&(0<=ny)&&(ny<M)&&(field[nx][ny]=='W')){
dfs(nx,ny);
}
}
}
return ;
}
int main()
{
int count=0,i,j;
scanf("%d%d",&N,&M);
for(i=0;i<N;i++)
scanf("%s",field[i]);
for(i=0;i<N;i++){
for(j=0;j<M;j++){
if(field[i][j]=='W'){
dfs(i,j);
count++;
}
}
}
printf("%d\n",count);
return 0;
}*/
void dfs(int x,int y){
int nx,ny,dx,dy;
field[x][y]='.';
for(dx=-1;dx<=1;dx++){
for(dy=-1;dy<=1;dy++){
nx=x+dx;
ny=y+dy;
if(0 <= nx && nx <N && 0 <= ny && ny <M && field[nx][ny] =='W'){
dfs(nx,ny);
}
}
}
}
int main(){
char ch;
int i,j,ans =0;
scanf("%d%d",&N,&M);
for(i=0;i<N;i++){
for(j=0;j<M;j++){
scanf("%c",&field[i][j]);
}
scanf("%c",&ch);
}
for(i=0;i<N;i++){
for(j=0;j<M;j++){
if(field[i][j]=='W'){
dfs(i,j);
ans++;
}
}
}
printf("%d",ans);
}
- poj2386-dfs
- poj2386 DFS
- POJ2386:Lake Counting(DFS)
- poj2386 Lake Counting DFS
- 简单dfs--poj2386
- POJ2386 Lake Counting(DFS)
- POJ2386 Lake Counting 【DFS】
- poj2386(dfs)
- poj2386水洼dfs
- poj2386 (DFS)
- POJ2386-简单BFS/DFS
- POJ2386经典DFS深搜
- POJ2386 Lake Counting (dfs)
- POJ2386 Lake Counting(dfs)
- poj2386 Lake Counting【DFS】
- POJ2386 Lake Counting (DFS)
- poj2386----简单dfs,a一送一
- POJ2386 Lake Counting 图DFS
- Matrix67: The Aha Moments 这是一篇旧文,点击此处以旧主题模式浏览。 什么是P问题、NP问题和NPC问题 这或许是众多OIer最大的误区之一。 你会
- 流光显示与血条形成
- 人工智能——计算机视觉公司Top16
- 小白算法练习 hdu swap 二分图 最大匹配
- 夜与酒
- poj2386 DFS
- 泛型浅析与应用
- 线性回归
- Effective C++ 摘要(一)
- hibernate--CoreAPI_Configuration
- 数组去重大总结
- 输入质量结果时,选择了子计划,点击进入,提示此责任无可用函数。更改责任与您的系统管理员联系。
- 监听WIFI来实现启动一个service
- 浅谈如何提高服务器并发处理能力