void bfs@big man
查看原帖
void bfs@big man
426724
数星星的二哈楼主2021/5/23 11:20

is void bfs 错了

#include<bits/stdc++.h>
using namespace std;
struct pp{
	int x,y;
}zz[5]={{0,0},{-1,0},{0,-1},{1,0},{0,1}};
int n,m;
int a[100][100];
pp que[100000];
int head=1,tail=1;
int ans;
void bfs(int x,int y){
	que[tail].x=x;
	que[tail].y=y;
	tail++;
	while(head<tail){
		for(int i=1;i<=4;i++){
			int xx=que[head].x+zz[i].x;
			int yy=que[head].y+zz[i].y;
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]!=0){
				a[xx][yy]=0;
				que[tail].x=xx;
				que[tail].y=yy;
				tail++; 
			} 
		}
		head++;	
	}
}
int main(){
	cin>>n>>m;
	char temp;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>temp;
			a[i][j]=temp;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			head=tail=1;
			if(a[i][j]!=0){	 
				 bfs(i,j);
				 ans++;
			}	
		}
	}
	cout<<ans;
	return 0;
}
2021/5/23 11:20
加载中...