poj 1562 简单深搜

来源:互联网 发布:sql获取表的所有字段 编辑:程序博客网 时间:2024/06/05 02:51
//搜八个方向即可#include<stdio.h>#include<string.h>#define N  200char ma[N][N];int n,m,vis[N][N];int dis[8][2]={1,0,-1,0,0,1,0,-1,1,1,1,-1,-1,1,-1,-1};void dfs(int x,int y) { int i,xx,yy; vis[x][y]=1; for(i=0;i<8;i++) {    xx=x+dis[i][0];    yy=y+dis[i][1];    if(ma[xx][yy]=='@'&&!vis[xx][yy]&&xx>=1&&xx<=n&&yy>=1&&yy<=m)        dfs(xx,yy); } return ;}int main() {   int i,j,k;   while(scanf("%d%d",&n,&m),n||m) {     for(i=1;i<=n;i++)        scanf("%s",ma[i]+1);        memset(vis,0,sizeof(vis));        k=0;     for(i=1;i<=n;i++)        for(j=1;j<=m;j++)        if(vis[i][j]==0&&ma[i][j]=='@') {        dfs(i,j);k++;        }        printf("%d\n",k);   }return 0;}

0 0
原创粉丝点击