40分,求调!!!(✿◕‿◕✿)
查看原帖
40分,求调!!!(✿◕‿◕✿)
1343308
IAKIOI66666楼主2024/5/26 07:04
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#define MAX 105 

using namespace std;

int n,m,cnt,a[MAX][MAX]; 
int x1[9]={-1,1,0,0,-1,1,1,1};
int y1[9]={0,0,-1,1,-1,1,-1,1};
void dfs(int x,int y){
	for(int i=0;i<=7;i++){
		int x2=x+x1[i],y2=y+y1[i];
		if(x2>n||y2>m||x2<1||y2<1||a[x2][y2]!=0)continue;
		a[x2][y2]=2;dfs(x2,y2);
	}
	return;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			char c;cin>>c;
			if(c=='W')a[i][j]=0;
			else a[i][j]=1;
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(a[i][j]==0)a[i][j]=2,cnt++,dfs(i,j);
		}
	cout<<cnt<<endl;
	return 0;
}
2024/5/26 07:04
加载中...