Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180475 | 简晨希1314 | 骑士遍历2 | C++ | 运行超时 | 9 | 1000 MS | 244 KB | 813 | 2024-08-21 14:12:21 |
#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; }