Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180669 | 黄*琦 | 骑士遍历2 | C++ | 解答错误 | 0 | 69 MS | 256 KB | 660 | 2024-08-21 17:17:47 |
#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; }