CDOJ 1965 连通域统计【DFS】
求连通域个数,简单题
1 #include <bits/stdc++.h> 2 using namespace std; 3 const int INF = 0x3f3f3f3f; 4 typedef long long LL; 5 int n,m,ans=0; 6 char s[1001][1001]; 7 void dfs(int x,int y) 8 { 9 if(x<0||x>=n||y<0||y>=m||s[x][y]=='.')return; 10 s[x][y]='.'; 11 dfs(x,y+1); 12 dfs(x,y-1); 13 dfs(x+1,y); 14 dfs(x-1,y); 15 dfs(x+1,y+1); 16 dfs(x+1,y-1); 17 dfs(x-1,y+1); 18 dfs(x-1,y-1); 19 } 20 int main() 21 { 22 cin>>n>>m; 23 for(int i=0;i<n;i++) 24 scanf("%s",s[i]); 25 for(int i=0;i<n;i++) 26 for(int j=0;j<m;j++) 27 { 28 if(s[i][j]=='@') { 29 ans++; 30 dfs(i, j); 31 } 32 } 33 cout<<ans<<endl; 34 return 0; 35 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步