HDU 1241 DFS
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int m,n; char s[110][110]; int vis[110][110]; void dfs(int x,int y,int v) { if(x<m&&x>=0&&y<n&&y>=0&&s[x][y]=='@'&&vis[x][y]==0) { vis[x][y]=v; for(int r=-1;r<=1;r++) for(int d=-1;d<=1;d++) if(r!=0||d!=0) dfs(x+r,y+d,v); } } int main() { while(cin>>m>>n&&m&&n) { for(int i=0;i<m;i++)scanf("%s",s[i]); memset(vis,0,sizeof(vis)); int ans=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) if(s[i][j]=='@'&&vis[i][j]==0) dfs(i,j,++ans); cout<<ans<<endl; } return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步