求助,总是输出-1
  • 板块P1238 走迷宫
  • 楼主deadrab5
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/3/3 21:49
  • 上次更新2023/10/23 23:13:19
查看原帖
求助,总是输出-1
368106
deadrab5楼主2023/3/3 21:49
#include<bits/stdc++.h>
using namespace std;
int m,n,startx,starty,endx,endy,t=1,tx[1000001],ty[1000001];
bool a[25][25],b[25][25];
int xa[]={0,-1,1,0,0};
int ya[]={0,0,0,-1,1};
bool isans=0;
void print()
{
	for(int i=1;i<t;i++)
	{
		cout<<'('<<tx[i]<<','<<ty[i]<<")->";
	}
	cout<<'('<<tx[t]<<','<<ty[t]<<')'<<endl;
}
void dfs(int x,int y) 
{
	if(x==endx&&y==endy)
	{
		isans=1;
		print();
		return ;
	}
	else
	{
		for(int i=1;i<=4;i++)
		{
			int nx=x+xa[i];
			int ny=y+ya[i];
			if(a[nx][ny]==1&&b[nx][ny]!=1&&nx!=0&&nx<m&&ny!=0&&ny<n)
			{
				t++;
				tx[t]=nx,ty[y]=ny;
				b[nx][ny]=1;
				dfs(nx,ny);
				b[nx][ny]=0;
			}
		}
	}
}
int main()
{
	cin>>m>>n;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j];
		}
	}
	cin>>startx>>starty>>endx>>endy;
	tx[t]=startx,ty[t]=starty;
	dfs(startx,starty);
	if(isans==0)
		cout<<"-1";
	return 0;
}

2023/3/3 21:49
加载中...