大佬帮帮忙~dfs40分过不去
查看原帖
大佬帮帮忙~dfs40分过不去
415731
zheng61楼主2022/1/21 20:15

大佬帮帮忙~~~

   #include<bits/stdc++.h>
   using namespace std;

   int bx[5]={0,-1,0,1,0},
   by[5]={0,0,-1,0,1};
   int n,m,ma[100][100],ans=0;
   void dfs(int ,int );

   int main(){
   	char c;
   	cin>>n>>m;
   	for(int i=1;i<=n;i++)
   		for(int j=1;j<=m;j++){
   			cin>>c;
   			int g=c-'0';
   			ma[i][j]=g;
   		}
   	for(int i=1;i<=n;i++){
   		for(int j=1;j<=m;j++){
   			if(ma[i][j]!=0){ 
   				dfs(i,j);
   				ans++;
   			}
   		}
   	}
   	cout<<ans;
   	return 0;
   }

   void dfs(int i,int j){
   	ma[i][j]=0;
   	for(int k=1;k<=4;k++){
   		if(ma[i+bx[k]]								[j+by[k]]!=0&&i+bx[k]>=1&&i+bx[k]			<=n&&j+by[k]>=1&&j+by[k]<=n){
   			dfs(i+bx[k],j+by[k]);
   		}
   	}
   	return;
   }
2022/1/21 20:15
加载中...