杭电1241-搜索专题&&迷宫问题

来源:互联网 发布:淘宝介入可以撤销吗 编辑:程序博客网 时间:2024/05/16 09:09

dfs()水题:

#include<stdio.h>#include<string.h>int m,n;char maze[105][105];int dfs(int a,int b){//深度遍历图结构,遍历完一次,说明图的区块加1 , int i;int x,y;int movex[]={-1,0,1,-1,1,-1,0,1};int movey[]={1,1,1,0,0,-1,-1,-1};if(maze[a][b]=='*')  return 0;else{maze[a][b]='*';//标记遍历过了 for(i=0;i<8;i++){x=a+movex[i];y=b+movey[i];if(x>=0&&y>=0&&x<m&&y<n&&maze[x][y]=='@')//不能超出范围   dfs(x,y);//深度遍历 }}return 1;//遍历完一个区块 }int main(){int result;int i,j;   while(scanf("%d %d",&m,&n)!=EOF&&m)   {      getchar();//接受换行    for(i=0;i<m;i++)   scanf("%s",maze[i]);     result=0;   for(i=0;i<m;i++)      for(j=0;j<n;j++)         result+=dfs(i,j);   printf("%d\n",result);    }   return 0;}


原创粉丝点击