求助!20分 改了很久也不对
查看原帖
求助!20分 改了很久也不对
923117
Heeheeaifu450楼主2023/4/2 20:48
#include<stdio.h>
#include<string.h>
char field[500][500];
int book[500][500];
int next[8][2]={{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}};
int count,i,k,j,n,m;
void dfs(int x,int y){
	int tx,ty;
	book[x][y]=1;
	for(k=0;k<8;k++){
		tx=next[k][0];
		ty=next[k][1];
	if(field[tx][ty]=='W' && tx>=0 && tx<n && ty>=0 && ty<m && book[tx][ty]==0 ){
		book[tx][ty]=1;
		dfs(tx,ty);
	}	
	} 
}
int main(){
	scanf("%d %d",&n,&m);
//	getchar();
	for(i=0;i<n;i++){
		scanf("%s",field[i]);
	}
//	getchar();
	count=0;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			if(field[i][j]=='W' && book[i][j]==0){
				
				dfs(i,j);
				count++;
			}
		}
	}
	printf("%d",count);
	return 0;
}
2023/4/2 20:48
加载中...