为什么没有输出??
查看原帖
为什么没有输出??
416402
xiazexuan楼主2022/8/10 11:59

P1451P1451这一道题熬了我一个多小时,就是输出不了(??)(??)
为什么??
代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1001;
int n,m;
char a[N][N];
int ans=0;
bool use[N][N];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
void dfs(int x,int y) {
	use[x][y]==1;
	int ax,ay;
	for(int i=0;i<4;i++){
		x+=dx[i],y+=dy[i];
		if(a[x][y]=='0' || use[x][y]==1){
			continue;
		}
		dfs(x,y);
		x-=dx[i];y-=dy[i+1];
	}
	return ;
}
int main() {
	cin>>n>>m;
	memset(a,'0',sizeof(a));
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>a[i][j];
		}
	}
		
	for(int i=0; i<n; i++) {
		for(int j=0; j<m; j++) {
			if(a[i][j]!='0' && use[i][j]==0) {
				dfs(i,j);
				ans++;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}

求大佬们讲解。

2022/8/10 11:59
加载中...