zoj--2165

来源:互联网 发布:美国一年制硕士 知乎 编辑:程序博客网 时间:2024/05/17 04:05
//通过dfs/bfs访问可以到达的所有结点//并统计总结点个数#include<iostream>#include<cstring>using namespace std;int x[]={-1,1,0,0};int y[]={0,0,-1,1};int n,m,visited[21][21],cnt;char map[25][25];void dfs(int x1,int y1){     for(int k=0;k<4;k++)     {         int x2=x1+x[k];         int y2=y1+y[k];         if(x2>=0&&x2<n&&y2>=0&&y2<m&&map[x2][y2]=='.'&&!visited[x2][y2])         {             cnt++;             visited[x2][y2]=1;             dfs(x2,y2);         }     }} int main(){    int x1,y1,i,j;    while(cin>>m>>n&&n&&m)    {        for(i=0;i<n;i++)           for(j=0;j<m;j++)           {               cin>>map[i][j];               if(map[i][j]=='@')               {x1=i;y1=j;}           }        cnt=1;memset(visited,0,sizeof(visited));        dfs(x1,y1);        cout<<cnt<<endl;    }  return 0; } 

0 0
原创粉丝点击