Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180702 | 孔心悦 | 骑士遍历2 | C++ | 解答错误 | 0 | 52 MS | 244 KB | 670 | 2024-08-21 17:24:21 |
#include <bits/stdc++.h> using namespace std; const int dx[]={-1,-2,-2,-1,1,2,2,1}; const int dy[]={2,1,-1,-2,-2,-1,1,2}; int n,dis[15][15],cnt,flag=0; void dfs(int x,int y){ if(cnt==n*n){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<dis[i][j]<<' '; } cout<<'\n'; } flag=1; } if(flag)return ; for(int i=0;i<8;i++){ int nx=x+dx[i],ny=y+dy[i]; if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&dis[nx][ny]==-1){ dis[nx][ny]=dis[x][y]+1; cnt++; dfs(nx,ny); dis[nx][ny]=-1; cnt--; } } } int main(){ int qx,qy; cin>>n>>qx>>qy; memset(dis,-1,sizeof(dis)); dis[qx][qy]=1; cnt=1; dfs(qx,qy); return 0; }