Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180559 | A班邓淑文 | 骑士遍历2 | C++ | 解答错误 | 0 | 51 MS | 260 KB | 665 | 2024-08-21 16:02:56 |
#include <bits/stdc++.h> using namespace std; int n,sx,sy; int a[105][105]; int dx[]={-1,-2,-2,-1,1,2,2,1}; int dy[]={2,-1,1,-2,2,1,-1,-2}; bool f; void dfs(int x,int y,int cnt){ if(cnt==n*n){ f=1; return ; } for(int i=0;i<8;i++){ int nx=x+dx[i],ny=y+dy[i]; if(nx>0 && nx<=n && ny>0 && ny<=n && !a[nx][ny]){ cnt++; a[nx][ny]=cnt; dfs(nx,ny,cnt); if(f)return ; cnt--; a[nx][ny]=0; } } } int main(){ cin>>n>>sx>>sy; a[sx][sy]=1; dfs(sx,sy,1); if(f){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } } else cout<<"no answer"; return 0; }