救命

P1451 求细胞数量

AC ```c #include<iostream> using namespace std; const int N = 110; int a[N][N]; int X[5] = {0, -1, 0, 1, 0}; int Y[5] = {0, 0, -1, 0, 1}; int n, m; int ans=0; void dfs(int x, int y) { a[x][y] = 0; for (int i = 1; i <= 4; i ++) { int dx = x + X[i]; int dy = y + Y[i]; if (dx >= 1 && dy >= 1 && dx <= n && dy <= m && a[dx][dy] != 0) dfs(dx, dy); x = dx - X[i]; y = dy - Y[i]; } return ; } int main() { cin >> n >> m; for (int i = 1; i <= n; i ++) for (int j = 1; j <= m; j ++) scanf("%1d", &a[i][j]); for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { if (a[i][j] == 0) continue; dfs(i, j); ans ++; } } cout << ans; return 0; } ```
by timmyliao @ 2024-02-02 11:54:52


感谢!!!
by Charlie0429 @ 2024-02-02 13:33:05


|