85pts玄关求助orz
查看原帖
85pts玄关求助orz
1293898
zhouyuxuan2023楼主2024/7/24 17:20

#9#10TLE

#15WA

代码如下,求dalao指点

#include<iostream>
using namespace std;
int n,m,x,y,xx,yy,a[15][15];
int map[15][3];
int dx[5]={0,0,-1,0,1};
int dy[5]={0,-1,0,1,0};
bool flag=1,f[15][15];
void Print(int U);
void DFS(int i,int j,int k){
	if(i==xx&&j==yy){
		cout<<'('<<x<<','<<y<<')'<<"->";
		Print(k);
		flag=0;
	}else{
		for(int T=1;T<=4;T++){
			if(i+dx[T]>=1&&i+dx[T]<=m&&j+dy[T]>=1&&j+dy[T]<=n&&a[i+dx[T]][j+dy[T]]&&!f[i+dx[T]][j+dy[T]]){
				f[i+dx[T]][j+dy[T]]=1;
				map[k][1]=i+dx[T];
				map[k][2]=j+dy[T];
				DFS(i+dx[T],j+dy[T],k+1);
				f[i+dx[T]][j+dy[T]]=0;
			}
		}
	}
}
void Print(int U){
	for(int i=1;i<U;i++){
		cout<<'('<<map[i][1]<<','<<map[i][2]<<')';
		if(i!=U-1){
			cout<<"->";
		}else{
			cout<<"\n";
		}
	}
}
int main(){
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	cin>>x>>y>>xx>>yy;
	f[x][y]=1;
	DFS(x,y,1);
	if(flag)cout<<-1;
	return 0;
}
//码风不太好
2024/7/24 17:20
加载中...