玄学问题
查看原帖
玄学问题
230875
Surge_of_Force楼主2021/10/6 08:43

对于这组数据:

5 5 2 2
X...X
.X.X.
..X..
.X.X.
X...X

我这个bfs为什么搜不到右上角和左下角的X???

queue<node>q;
	vis[u.x][u.y]=1;
   	u.x=x;u.y=y;
   	q.push(u);
   	while(!q.empty()){
   		u=q.front();q.pop();
		   	
   		for(re int i=0;i<4;i++){
   			v.x=u.x+_wzx[i],v.y=u.y+_wzy[i];
   			if(v.x>=1&&v.x<=n&&v.y>=1&&v.y<=m&&!vis[v.x][v.y]){
   			    if(ch[v.x][v.y]=='X'){
			       q.push(v);
			       	vis[v.x][v.y]=1;
				}
				else ans++;
		    }
		}

		for(re int i=0;i<4;i++){
			v.x=u.x+wzx[i],v.y=u.x+wzy[i];
			if(v.x>=1&&v.x<=n&&v.y>=1&&v.y<=m&&!vis[v.x][v.y]&&ch[v.x][v.y]=='X'){
				q.push(v);
				vis[v.x][v.y]=1;
			}
		}
	}
2021/10/6 08:43
加载中...