提交时间:2025-11-01 14:19:12

运行 ID: 359146

#include<bits/stdc++.h> using namespace std; int n,c; int r[30][3]; bool f[10][10]; int dx[5]={0,0,1,0,-1}; int dy[5]={0,1,0,-1,0}; void print(int k){ c++; cout<<c<<":"; for(int i=1;i<k;i++){ cout<<r[i][1]<<","<<r[i][2]<<"->"; } cout<<n<<","<<n<<'\n'; } void dfs(int x,int y,int k){ r[k][1]=x; r[k][2]=y; if(x==n&&y==n){ print(k); return; } int tx,ty; for(int i=1;i<=4;i++){ tx=x+dx[i]; ty=y+dy[i]; if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&f[tx][ty]==0){ f[tx][ty]=1; dfs(tx,ty,k+1); f[tx][ty]=0; } } } int main(){ cin>>n; f[1][1]=true; dfs(1,1,1); return 0; }