求调
查看原帖
求调
1054010
Egg_King_Like_dwrg楼主2024/8/16 10:16
#include <bits/stdc++.h>  
using namespace std;
int n,m,ans,sum;
int a[1100][1100];
int v[1100][1100];
int f[4][2]={1,0,-1,0,0,1,0,-1};
queue<int> q1,q2;
void bfs(int x1,int y1){
	q1.push(x1);
	q2.push(y1);
	while(!q1.empty()){
		int xx=q1.front();
		int yy=q2.front();
		q1.pop();
		q2.pop();
		v[xx][yy]=0;
			for(int i=0;i<4;i++){
				int dx=xx+f[i][0];
				int dy=yy+f[i][1];
				if(v[dx][dy]!=0){
					q1.push(dx);
					q2.push(dy);
				}
			}
		}
	}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]&&!v[i][j]){
				bfs(i,j);
				ans++;
			}
		}
	}
	cout<<ans;
	return 0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
}

原题

谢谢

2024/8/16 10:16
加载中...