您的位置:首页 > 其它

UVA572(油田)简单的深搜问题

2014-04-02 20:11 351 查看
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=513#include "stdio.h"

#include <iostream>

#include <string.h>

using namespace std;

int vis[150][150];

char mat[150][150];

void dfs(int x,int y){

if(mat[x][y]=='*'||vis[x][y])

return ;

vis[x][y]=1;

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 m,n;

string s;

while(scanf("%d%d",&m,&n)!=EOF)

{

memset(mat,'*',sizeof(mat));

memset(vis,0,sizeof(vis));

if(m==0&&n==0)

return 0;

else

for(int i=0;i<m;i++){

cin>>s;

for(int j=0;j<n;j++)

mat[i+1][j+1]=s[j];

}

int count=0;

for(int i=1;i<=n;i++){

for(int j=1;j<=n;j++)

{

if(!vis[i][j]&&mat[i][j]=='@')

{

count++;dfs(i,j);

}

}

}

cout<<count<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva