蒟蒻运行错误,请大佬求调
  • 板块P1238 走迷宫
  • 楼主liujunyua
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/10/10 18:51
  • 上次更新2024/10/10 19:21:41
查看原帖
蒟蒻运行错误,请大佬求调
1357615
liujunyua楼主2024/10/10 18:51
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int m,n;
int a[101][101];
int sx,sy;
int ex,ey;
const int d[5][2]={{-1,0},{0,+1},{+1,0},{0,-1}};
struct node{
	int x;
	int y;
};
node ans[1001];
bool flag;
void print(int nn){
	flag=true;
	for (int i=1;i<nn;i++) {
		printf("(%d,%d)->",ans[i].x ,ans[i].y );
	}
	printf("(%d,%d)->\n",ans[nn].x,ans[nn].y);
}
void bfs(int x,int y,int sum){
	if(x==ex&&y==ey){
		print(sum);
	}
	for(int i=1;i<=4;i++){
		int xx=x+d[i][0];
		int yy=y+d[i][1];
		if(a[xx][yy]){
			ans[sum].x=xx+1,ans[sum].y=yy+1;
			bfs(xx,yy,sum+1);
	    }
		a[x][y]=1;
	}
}
int main(){
	freopen("walk.in","r",stdin);
	freopen("walk.out","w",stdout);
	scanf("%d%d",&m,&n);
	for(int i=1;i<=m;i++)
	 for(int j=1;j<=n;j++)
	   scanf("%d",&a[i][j]);
	scanf("%d%d",&sx,&sy);
	scanf("%d%d",&ex,&ey);
	if(a[sx][sy]==0||a[ex][ey]==0){
		printf("-1");
		return 0;
	}
	ans[1].x=sx;
	ans[1].y=sy;
	bfs(sx,sy,2);
	if(!flag){
		printf("-1");
		return 0;
	}
}

蒟蒻手写的广搜(求调)

2024/10/10 18:51
加载中...