P1451这一道题熬了我一个多小时,就是输出不了(??)
为什么??
代码:
#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;
}
求大佬们讲解。