hdoj1241

xiaoxiao2021-02-27  711

http://acm.hdu.edu.cn/showproblem.php?pid=1241

#include<stdio.h>

#include<string.h> char map[105][105]; int used[105][105]; int dir[8][2]={-1,0,1,0,0,1,0,-1,1,1,-1,-1,1,-1,-1,1}; int dx,dy; int cnt,n,m,flag; void dfs(int x,int y) { if(x<0||x>=n||y<0||y>=m)return ; used[x][y]=1; for(int i=0;i<8;i++) { dx=x+dir[i][0]; dy=y+dir[i][1]; if(used[dx][dy]==0) dfs(dx,dy); } flag=1; } int main() { while(scanf("%d%d",&n,&m)&&n||m) { cnt=0; memset(used,0,sizeof(used)); for(int i=0;i<n;i++) { scanf("%s",map[i]); for(int j=0;j<m;j++) { if(map[i][j]=='*')used[i][j]=1; } } for(int i=0;i<n;i++) for(int j=0;j<m;j++) { flag=0; if(used[i][j]==0) dfs(i,j); if(flag==1) cnt++; } printf("%d\n",cnt); } } 
转载请注明原文地址: https://www.6miu.com/read-581.html

最新回复(0)