求助
查看原帖
求助
74823
kevinkk楼主2020/7/17 21:01

求助 为什么DFS为runtime error?

#include<bits/stdc++.h>

using namespace std;

int n, m;

int a1, b1;

int a2, b2;

int t[110][110];

int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, -1, 0, 1};

char s;

int ans;

void dfs(int a, int b){

if (t[a][b] == 0) return ;

t[a][b] = 0;

for (int i = 0; i < 4; i++){

if (t[a + dx[i]][b + dy[i]] != 0)

dfs(a + dx[i], b + dy[i]);
	}
}

int main(){

scanf("%d %d", &n, &m);

for (int i = 0; i <= 110; i++)

for (int j = 0; j <= 110; j++)

t[i][j] = 0;

for (int i = 1; i <= n; i++)

for (int j = 1; j <= m; j++){

cin >> s;

if (s == '0') t[i][j] = 0;

else t[i][j] = 1;
		}

for (int i = 1; i <= n; i++)

for (int j= 1; j <= m; j++){

if (t[i][j] != 0){

ans ++;

dfs(i, j);
			}
		}

printf("%d", ans);

return 0;

}
2020/7/17 21:01
加载中...