提交时间:2024-08-21 17:17:47
运行 ID: 180669
#include<bits/stdc++.h> using namespace std; int dt[8][2]={{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2}}; int vis[15][15],step[15][15]; int n; void print(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<step[i][j]<<" "; } cout<<endl; } } void dfs(int x,int y,int no){ if(no>n*n){ print(); exit(0); } for(int i=0;i<8;i++){ int nx=x+dt[i][0],ny=y+dt[i][1]; if(nx>=1 && nx<=n && ny>=1 && ny<=n && !vis[nx][ny]){ step[nx][ny]=no; vis[nx][ny]=1; dfs(nx,ny,no+1); vis[nx][ny]=0; } } } int main(){ int x,y; cin>>n>>x>>y; step[x][y]=1; vis[x][y]=1; dfs(x,y,2); return 0; }