dfs
来源:互联网 发布:在sql语言中子查询是 编辑:程序博客网 时间:2024/06/05 21:03
#include "stdio.h"
#include<stdlib.h>
char a[100][100];
int m,n,flag;
void dfs(int x,int y)
{
if(x<0||x>=m||y<0||y>=n) return ;
a[x][y]='E';
if(a[x][y+1]=='W') dfs(x,y+1);
else if(a[x+1][y+1]=='W') dfs(x+1,y+1);
else if(a[x-1][y+1]=='W') dfs(x-1,y+1);
else if(a[x][y-1]=='W') dfs(x,y-1);
else if(a[x+1][y-1]=='W') dfs(x+1,y-1);
else if(a[x-1][y-1]=='W') dfs(x-1,y-1);
else if(a[x+1][y]=='W') dfs(x+1,y);
else if(a[x-1][y]=='W') dfs(x-1,y);
else flag++;
}
int main()
{
int i,j;
while(~scanf("%d%d",&m,&n))
{
flag=0;
int x,y;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%1s",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i][j]=='W') {x=i;y=j;dfs(x,y);}
//printf("%d %d\n",x,y);
printf("%d\n",flag);
}
return 0;
}
#include<stdlib.h>
char a[100][100];
int m,n,flag;
void dfs(int x,int y)
{
if(x<0||x>=m||y<0||y>=n) return ;
a[x][y]='E';
if(a[x][y+1]=='W') dfs(x,y+1);
else if(a[x+1][y+1]=='W') dfs(x+1,y+1);
else if(a[x-1][y+1]=='W') dfs(x-1,y+1);
else if(a[x][y-1]=='W') dfs(x,y-1);
else if(a[x+1][y-1]=='W') dfs(x+1,y-1);
else if(a[x-1][y-1]=='W') dfs(x-1,y-1);
else if(a[x+1][y]=='W') dfs(x+1,y);
else if(a[x-1][y]=='W') dfs(x-1,y);
else flag++;
}
int main()
{
int i,j;
while(~scanf("%d%d",&m,&n))
{
flag=0;
int x,y;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%1s",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i][j]=='W') {x=i;y=j;dfs(x,y);}
//printf("%d %d\n",x,y);
printf("%d\n",flag);
}
return 0;
}
阅读全文
1 0
- DFS
- DFS
- dfs
- dfs
- dfs
- dfs
- DFS
- DFS
- dfs
- DFS
- DFS
- DFS
- dfs
- DFS
- dfs
- dfs
- dfs
- dfs
- C# Directory.GetFiles()获取多个类型格式的文件
- 锁--自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁
- 网络编程协议练习
- 常用排序和查找算法的原理及python实现
- 如何成为机器学习工程师:学习路径
- dfs
- **中缀表达式转换成后缀表达式并求值**
- mongodb安装和配置
- String类
- Kotlin中handler避免内存泄漏
- Lucene.net(4.8.0)+PanGu分词器 问题记录一 分词器Analyzer的构造和内部成员ReuseStategy
- 普及练习场 排序 【模板】快速排序
- 解析网络数据添加数据库
- BCD码