三维m,n,l;第一重输入一定是第三维我醉了啊啊啊
行列搞错了还调了半天
dfs里面=0写成=1了还调了半天我在想什么啊啊啊啊啊啊
#include<iostream>
using namespace std;
const int M = 1296, N = 138, L = 70;
int m, n, l, t;
int g[M][N][L];
int dx[] = {0, 1, 0, -1, 0, 0};
int dy[] = {1, 0, -1, 0, 0, 0};
int dz[] = {0, 0, 0, 0, 1, -1};
int dfs(int x, int y, int z)
{
int res = 1;
g[x][y][z] = 0;
for (int i=0; i<6; i++)
{
int a = x + dx[i];
int b = y + dy[i];
int c = z + dz[i];
if (a >= 0 && b >=0 && c >=0 && a < m && b < n && c < l && g[a][b][c])
{
res += dfs(a, b, c);
}
}
return res;
}
int main()
{
scanf("%d%d%d%d", &m, &n, &l, &t);
for (int k=0; k<l; k++)
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
scanf("%d", &g[i][j][k]);
int res = 0;
for (int i=0; i<m; i++)
{
for (int j=0; j<n; j++)
{
for (int k=0; k<l; k++)
{
if (g[i][j][k] == 1)
{
int s = dfs(i, j, k);
if (s >= t)
res += s;
}
}
}
}
cout << res;
return 0;
}