十分,求助
查看原帖
十分,求助
914413
xiaozhichen123楼主2024/1/19 08:14
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[99][99];
long long ljx[999],ljy[999],sum;
int xx,yy,xxx,yyy,vis[99][99],f;
int dx[5]={0,-1,0,1};
int dy[5]={-1,0,1,0};
void print(){
	for(int i=1;i<sum;i++)cout<<"("<<ljx[i]<<","<<ljy[i]<<"(->";
	cout<<"("<<ljx[sum]<<","<<ljy[sum]<<")"<<endl;
}
void dfs(int x,int y,int temp){
	sum=temp;
	ljx[temp]=x;
	ljy[temp]=y;
	if(x==xxx&&y==yyy){
		f=1;
		print();
	}
	for(int i=0;i<=3;i++){
		int tx=x+dx[i];
		int ty=y+dy[i];
		if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&vis[tx][ty]!=1&&a[tx][ty]!=0){
			vis[x][y]=1;
			dfs(tx,ty,temp+1);
			vis[x][y]=0;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];
	cin>>xx>>yy>>xxx>>yyy;
	vis[xx][yy]=1;
	dfs(xx,yy,1);
	if(f==0)cout<<-1;
	return 0; 
}
2024/1/19 08:14
加载中...