首页 > 代码库 > HDU 1241
HDU 1241
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 const int MAX=105; 6 7 bool vis[MAX][MAX]; 8 char maze[MAX][MAX]; 9 int n,m;10 int dir[8][2]={0,1,1,0,0,-1,-1,0,1,1,1,-1,-1,1,-1,-1};11 12 bool ok(int i,int j){13 if(!vis[i][j]&&maze[i][j]==‘@‘&&i>=0&&i<n&&j>=0&&j<m)14 return true;15 return false;16 }17 18 void dfs(int i,int j){19 int ti,tj;20 for(int k=0;k<8;k++){21 ti=i+dir[k][0];22 tj=j+dir[k][1];23 if(ok(ti,tj)){24 vis[ti][tj]=true;25 dfs(ti,tj);26 }27 }28 }29 30 int main(){31 while(scanf("%d%d",&n,&m)!=EOF){32 if(n==0) break;33 for(int i=0;i<n;i++)34 scanf("%s",maze[i]);35 memset(vis,false,sizeof(vis));36 int ans=0;37 for(int i=0;i<n;i++){38 for(int j=0;j<m;j++)39 if(maze[i][j]==‘@‘&&!vis[i][j]){40 ans++;41 dfs(i,j);42 }43 }44 printf("%d\n",ans);45 }46 return 0;47 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。