Please tell me why.
查看原帖
Please tell me why.
1081521
Sci_8633楼主2024/7/10 20:55

报错
注:先不要看我的输出内容。

#include<bits/stdc++.h>
using namespace std;
int n,m,vis[115][80];
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
char s[115][80];
struct node{
	int x;
	int y;
};
queue<node>q;
void bfs(int x,int y){
	q.push({x,y});
	while(!q.empty()){
		node a=q.front();
		q.pop();
		for(int i=0;i<4;++i){
			int nx=x+dx[i];
			int ny=y+dy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&vis[nx][ny]==0){
				vis[nx][ny]=vis[x][y]+1;
				q.push({nx,ny});
			}
			if(nx==n&&ny==m){
				printf("%d",vis[nx][ny]-1);
				return;
			}
		}
	}
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j)
			scanf("%c",&s[i][j]);
		getchar(); //避免回车读入 
	}
	vis[1][1]=1;
	printf("1 1\n");
	if(!(n==1||m==1))	bfs(1,1);
	else	printf("1 1\n");
	return 0;
}

2024/7/10 20:55
加载中...