答案是dfs会出界的0的个数,那么我们直接从越界区域dfs回去,标记所有能达到的点。再统计有多少被标记的0,即为答案。 #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 10; char ch[N][N]; bool vis[N][N]; int n, m; inline void dfs(int x, int y) { if (x < 0 || x > n + 1 || y < 0 || y > m + 1 || ch[x][y] == '1' || vis[x][y]) r...