30分求助!(广搜)
查看原帖
30分求助!(广搜)
1011579
jess1ca1o0g3楼主2023/10/21 16:42

#2吃一个RE,其余WA

一直调不出来

#include<iostream>
int dx[8]={-1,-1,-1,1,1,1,0,0},
	dy[8]={-1,0,-1,1,0,-1,1,-1},ans,n,m;
char l[105][105];
inline void bfs(int p,int q){
	int x,y,t=0,w=1,h[1005][3];
	ans++,l[p][q]='.',h[1][1]=p,h[1][2]=q;
	while(t<=w){
		t++;
		for(int i=0;i<8;i++){
			x=h[t][1]+dx[i],y=h[t][2]+dy[i];
			if(x>=0&&x<n&&y>=0&&y<m&&l[x][y]=='W') w++,h[w][1]=x,h[w][2]=y,l[x][y]='.';
		}
	}
}
inline void init(){
	std::cin>>n>>m;
	for(int i=0;i<n;i++) for(int j=0;j<m;j++) std::cin>>l[i][j];
}
inline void work(){
	for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(l[i][j]=='W') bfs(i,j);
}
inline void print(){
	std::cout<<ans<<std::endl;
}
signed main(){
	init();
	work();
	print();
	return 0;
}
2023/10/21 16:42
加载中...