杨书蘅 • 10小时前
using namespace std; char a[55][55][55]; int n, m, k; bool vis[50][50][50];
void dfs(int x, int y, int z) {
if (!vis[x][y][z] || x > n || x < 1 || y > m || y < 1 || z > k || z < 1)
return;
vis[x][y][z] = true;
dfs(x + 1, y, z);
dfs(x - 1, y, z);
dfs(x, y + 1, z);
dfs(x, y - 1, z);
dfs(x, y, z + 1);
dfs(x, y, z - 1);
}
int main() {
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
for (int l = 1; l <= k; l++) {
cin >> a[i][j][l];
}
}
}
int cnt = 0;
memset(vis, false, sizeof vis);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
for (int l = 1; l <= k; l++) {
if (a[i][j][l] == '#' && !vis[i][j][l]){
dfs(i, j, l);
cnt++;
}
}
}
}
cout << cnt;
return 0;
}你被骗了
using namespace std; char a[55][55][55]; int n, m, k; bool vis[50][50][50];
void dfs(int x, int y, int z) {
if (!vis[x][y][z] || x > n || x < 1 || y > m || y < 1 || z > k || z < 1)
return;
vis[x][y][z] = true;
dfs(x + 1, y, z);
dfs(x - 1, y, z);
dfs(x, y + 1, z);
dfs(x, y - 1, z);
dfs(x, y, z + 1);
dfs(x, y, z - 1);
}
int main() {
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
for (int l = 1; l <= k; l++) {
cin >> a[i][j][l];
}
}
}
int cnt = 0;
memset(vis, false, sizeof vis);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
for (int l = 1; l <= k; l++) {
if (a[i][j][l] == '#' && !vis[i][j][l]){
dfs(i, j, l);
cnt++;
}
}
}
}
cout << cnt;
return 0;
}
评论:
请先登录,才能进行评论