bfs模板求debug
  • 板块学术版
  • 楼主rpmcppAFOed
  • 当前回复16
  • 已保存回复16
  • 发布时间2021/12/11 13:48
  • 上次更新2023/11/3 22:30:14
查看原帖
bfs模板求debug
491523
rpmcppAFOed楼主2021/12/11 13:48
#include<bits/stdc++.h>
#define rg register
#define ll long long
using namespace std;
struct node{
	int x,y,step;
};
int n,m;
char a[45][45];
bool vis[45][45];
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
int bfs(int sx,int sy){
	queue<node> q;
	
	memset(vis,0,sizeof(vis));
	node cur={sx,sy,0};
	q.push(cur);
	vis[sx][sy]=1;
	while(!q.empty()){
		cur=q.front();
		q.pop();
		if(cur.x==n&&cur.y==m){
			return cur.step;
		}
		for(int i=1;i<4;i++){
			int nx=cur.x+dx[i];
			int ny=cur.y+dy[i];
			if(nx>=1&&nx<n&&ny>=1&&ny<=m&&!vis[nx][ny]&&a[nx][ny]!='#'){
				node nxt={nx,ny,cur.step+1};
				vis[nx][ny]=0;
				q.push(nxt);
			}
		}
	}
	return -1;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	cout<<bfs(1,1)<<endl;
	return 0;
}

题目是:一本通1252 没有输出

2021/12/11 13:48
加载中...