70分,其他全WA,求大佬指点
  • 板块题目总版
  • 楼主xsj4zyc
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/11 20:42
  • 上次更新2024/8/11 21:23:19
查看原帖
70分,其他全WA,求大佬指点
778772
xsj4zyc楼主2024/8/11 20:42
#include<bits/stdc++.h>
using namespace std;
string b[1010];
char a[1010][1010];
int ax,ay,bx,by;
int dx[]={1,-1,0,0};
int dy[]={0,0,-1,1};
int vist[1010][1010];
struct node{
	int x,y;
	int step;
}duile[11010];
void bfs(){
	int l=1,r=0;
	duile[++r].x=ax;
	duile[r].y=ay;
	duile[r].step=0;
	vist[ax][ay]=1;
	while(l<=r){
		int nowx=duile[l].x;
		int nowy=duile[l].y;
		int nstep=duile[l].step;
		if(nowx==bx&&nowy==by){
			cout<<nstep-1;
			return;
		}
		for(int i=0;i<4;i++){
			int nextx=nowx+dx[i];
			int nexty=nowy+dy[i];
			if(nextx>=1&&nextx<=10&&nexty>=1&&nexty<=10&&!vist[nextx][nexty]&&a[nextx][nexty]!='R'){
				vist[nextx][nexty]=1;
				duile[++r].x=nextx;
				duile[r].y=nexty;
				duile[r].step=nstep+1;
			}
		}
		l++;
	}
}
int main(){
	for(int i=1;i<=10;i++){
		cin>>b[i];
	}
	for(int i=1;i<=10;i++){
		for(int j=0;j<=9;j++){
			a[i][j+1]=b[i][j];
			if(b[i][j]=='B'){
				ax=i;
				ay=j;
			}
			if(b[i][j]=='L'){
				bx=i;
				by=j;
			}
		}
	}
	bfs();
	return 0;
} 
2024/8/11 20:42
加载中...