侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】迷宫的所有路径

Allen Best
2024-05-05 / 0 评论 / 1 点赞 / 41 阅读 / 621 字
温馨提示:
本文最后更新于 2024-05-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include<bits/stdc++.h>
using namespace std;
long long n,xx[6]={0,1,0,-1},yy[6]={1,0,-1,0},ax[5000],by[5000],k=0,h=0;
bool f[66][66];
void dfs(int x,int y,int k){
	if(x==n&&y==n){
		h++;
		cout<<h<<":1,1";
		for(int j=1;j<=k-1;j++) cout<<"->"<<ax[j]<<","<<by[j];
		cout<<endl;
		return ;
	}
	for(int i=0;i<4;i++){
		int nx=x+xx[i],ny=y+yy[i];
		if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&!f[nx][ny]){
			f[nx][ny]=true;
			ax[k]=nx,by[k]=ny;
			dfs(nx,ny,k+1);
			f[nx][ny]=false;
		}
	}
}
int main(){
	cin>>n;
	f[1][1]=true;
	ax[0]=1;
	by[0]=1;
	dfs(1,1,1);
	return 0;
}
0

评论区