灌水区dalao救救孩子吧!!(bfs)
  • 板块灌水区
  • 楼主Ceva
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/16 08:17
  • 上次更新2023/11/3 03:29:04
查看原帖
灌水区dalao救救孩子吧!!(bfs)
981031
Ceva楼主2023/8/16 08:17
#include<iostream>
using namespace std;
struct node{
	int x,y;
}que[1001];
int head=1,tail=1;
int map[1001][1001];
int dx[5]={-1,1,0,0},dy[5]={0,0,1,-1};
int n,m,xx,yy,sum=0;
void bfs(int sx,int sy){
	que[tail].x=sx;
	que[tail].y=sy;
	map[sx][sy]=0;
	tail++;
	while(head<tail){
		for(int i=0;i<4;i++){
			xx=que[head].x+dx[i];
			yy=que[head].y+dy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&map[xx][yy]!=0){
				map[xx][yy]=0; 
				que[tail].x=xx;
				que[tail].y=yy;
				tail++;
			}
		}
		head++;
	}
	sum++;
	return; 
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			char c;
			cin>>c;
			map[i][j]=c-'0';
		} 
	}	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(map[i][j]!=0) bfs(i,j);
		}
	}
	cout<<sum<<endl;
	return 0;
}

输入借鉴的dalao秉烛顷夜 题目链接P1451 只WA了#6

2023/8/16 08:17
加载中...