poj2386水洼dfs
2015-08-06 21:17
267 查看
#include<stdio.h>
char a[102][102];
int d[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}; //d数组表示方位
int n,m;
void dfs(int x,int y)
{
if(a[x][y]=='.' || x<0 || x>=n || y<0 || y>=m) return ;
for(int i=0;i<8;++i)
{
a[x][y]='.'; //把W变成点
dfs(x+d[i][0],y+d[i][1]); //递归调用
}
}
void dfs(int x,int y) //最原始的
{
if(a[x][y]=='.' || x<0 || x>=n || y<0 || y>=m) return ;
a[x][y]='.';
dfs(x-1,y-1);
dfs(x-1,y);
dfs(x-1,y+1);
dfs(x,y-1);
dfs(x,y+1);
dfs(x+1,y-1);
dfs(x+1,y);
dfs(x+1,y+1);
}
int main()
{
int i,j;
int ans=0;
scanf("%d%d",&n,&m);
getchar();
for(i=0;i<n;++i)
scanf("%s",a[i]);
for(i=0;i<n;++i) //遍历
{
for(j=0;j<m;++j)
{
if(a[i][j]=='W')
{
ans++;
dfs(i,j);
}
}
}
printf("%d",ans);
return 0;
}
/* //测试数据
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
*/
char a[102][102];
int d[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}; //d数组表示方位
int n,m;
void dfs(int x,int y)
{
if(a[x][y]=='.' || x<0 || x>=n || y<0 || y>=m) return ;
for(int i=0;i<8;++i)
{
a[x][y]='.'; //把W变成点
dfs(x+d[i][0],y+d[i][1]); //递归调用
}
}
void dfs(int x,int y) //最原始的
{
if(a[x][y]=='.' || x<0 || x>=n || y<0 || y>=m) return ;
a[x][y]='.';
dfs(x-1,y-1);
dfs(x-1,y);
dfs(x-1,y+1);
dfs(x,y-1);
dfs(x,y+1);
dfs(x+1,y-1);
dfs(x+1,y);
dfs(x+1,y+1);
}
int main()
{
int i,j;
int ans=0;
scanf("%d%d",&n,&m);
getchar();
for(i=0;i<n;++i)
scanf("%s",a[i]);
for(i=0;i<n;++i) //遍历
{
for(j=0;j<m;++j)
{
if(a[i][j]=='W')
{
ans++;
dfs(i,j);
}
}
}
printf("%d",ans);
return 0;
}
/* //测试数据
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
*/
相关文章推荐
- UDK控制台命令概览
- 十一讲,买花
- LeetCode(66)题解: Plus One
- (2015多校第6场)HDU5361--In Touch (Dijkstra应用)
- [leedcode 216] Combination Sum III
- 测试用例设计白皮书--测试用例设计综合策略
- uva 12307(点集的外接矩形)
- java设计模式(9) - 适配器模式
- Zoj 1671 Walking Ant(BFS+优先队列||记忆化搜索)
- 测试用例设计白皮书--场景设计方法
- 排序小试牛刀(类冒泡……)
- ajax访问不到服务端静态资源文件的处理方法
- Zoj 2100 Seeding
- java中进行二进制,八进制,十六进制,十进制间进行相互转换
- java设计模式(8) - 享元模式
- 空指针漏洞防护技术-高级篇
- 模拟网站登录实现----Python
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……
- 解释java中StringBuilder、StringBuffer、String类之间的关系
- 二、oracle sqlplus常用命令