70分求助,1,6,8WA
查看原帖
70分求助,1,6,8WA
597089
zhangyuanxiao楼主2022/4/17 17:02
#include<iostream>
using namespace std;

int n,m,ans;
char a[105][105];
int dx[8]={1,-1,0,0,1,-1,1,-1},dy[8]={0,0,1,-1,1,1,-1,-1};

void dfs(int x,int y){
   a[x][y]='.';
   for(int i=0;i<8;i++){
   	if(x+dx[i]>=1 && x+dx[i]<=n && y+dy[i]>=1 && y+dy[i]<=n && a[x+dx[i]][y+dy[i]]=='W'){
   		//cout<<x+dx[i]<<" "<<y+dy[i]<<'\n';
   		dfs(x+dx[i],y+dy[i]);
   	}
   }
}

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]=='W'){
   			//cout<<i<<" "<<j<<'\n';
   			dfs(i,j);
   			//cout<<'\n';
   			ans++;
   		}
   	} 
   }
   cout<<ans;
   return 0;
}
2022/4/17 17:02
加载中...