提交时间:2024-08-21 14:12:21
运行 ID: 180475
#include<bits/stdc++.h> using namespace std; int n; int x,y; int vis[10][10]; int a[10][10]; int dir[8][2]={{1,2},{2,1},{1,-2},{2,-1},{-1,2},{-2,1},{-1,-2},{-2,-1}}; void dfs(int z,int x,int y){ if(z==n*n){ for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ printf("%-4d",a[i][j]+1); } cout << endl; } exit(0); return ; } for(int i=0; i<=7; i++){ if(x+dir[i][0]>=1&&x+dir[i][0]<=n){ if(y+dir[i][1]>=1&&y+dir[i][1]<=n){ if(vis[x+dir[i][0]][y+dir[i][1]]==false){ vis[x+dir[i][0]][y+dir[i][1]]=true; a[x+dir[i][0]][y+dir[i][1]]=z; dfs(z+1,x+dir[i][0],y+dir[i][1]); vis[x+dir[i][0]][y+dir[i][1]]=false; } } } } } int main(){ cin >>n; cin >>x >>y; vis[x][y]=true; dfs(1,x,y); cout <<"-1" << endl; return 0; }