油田

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int idx[105][105],m,n; char pic[105][105]; void dfs(int p, int q, int cnt) { if (p<0 || p>=m || q<0 || q>=n)return; if (idx[p][q] > 0 || pic[p][q] != '@')return; idx[p][q] = cnt; for (int dr = -1; dr <= 1; dr++) { for (int dc = -1; dc <= 1; dc++) { if(dr!=0||dc!=0)dfs(p + dr, q + dc, cnt); } } } int main(void) { while (cin >> m >> n && m) { int cnt = 0; for (int i = 0; i < m; i++) scanf("%s", pic[i]); memset(idx, 0, sizeof(idx)); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (idx[i][j] == 0 && pic[i][j] == '@') dfs(i, j, ++cnt); } } printf("%d\n", cnt); } }
计算机小白记录学习过程,喜欢就点个推荐和关注吧O(∩_∩)O哈哈~

浙公网安备 33010602011771号