求调 样例过不了
查看原帖
求调 样例过不了
1258467
hao12345ia楼主2024/6/14 21:51
#include<bits/stdc++.h>
using namespace std;
int n,m,way[1010101][2];
int mx[5]={0,0,1,0,-1},my[5]={0,-1,0,1,0};
int map1[16][16],l;
int zhon,dian,ans=0;
void dfs(int x,int y){
	if(x==zhon&&y==dian){
		cout<<l<<endl;
		for(int i=1;i<=l;i++){
			cout<<"("<<way[i][1]<<","<<way[i][2]<<")->";
		}
		cout<<endl;
		l=0;
		ans++;
		return ;
	}
	for(int i=1;i<=4;i++){
		if(map1[x+my[i]][y+mx[i]]==0&&y+mx[i]<m&&x+my[i]<n&&x+my[i]>0&&y+mx[i]>0){
			cout<<x+my[i]<<" "<<y+mx[i]<<endl;
			map1[x+my[i]][y+mx[i]]=1;
			l++; 
			dfs(x+my[i],y+mx[i]);
			l--;
			map1[x+my[i]][y+mx[i]]=0;
		}
	}
} 
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>map1[i][j];
		}
	}
	int x,y;
	cin>>x>>y>>zhon>>dian;
	dfs(x,y);
	if(ans==0){
		cout<<-1;
	}
}
2024/6/14 21:51
加载中...