Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180531 | 吴宇航 | 骑士遍历2 | C++ | 解答错误 | 0 | 45 MS | 236 KB | 595 | 2024-08-21 15:42:15 |
#include <bits/stdc++.h> using namespace std; int n,x,y,a[12][12]; int dx[10]={2,1,-1,-2,1,2,-1,-2}; int dy[10]={1,2,-2,-1,-2,-1,2,1}; bool is; void dfs(int x,int y,int q){ if(q==n*n){ is=true; return; } for(int i=0;i<8;i++){ int cx=x+dx[i],cy=y+dy[i]; if(cx>0 && cx<=n && cy>0 && cy<=n && !a[cx][cy]){ a[cx][cy]=++q; dfs(cx,cy,q); q--; if(is)return; a[cx][cy]=0; } } } int main(){ cin >> n >> x >> y; a[x][y]=1; dfs(x,y,1); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout << a[i][j] << ' '; cout << '\n'; } return 0; }