Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180524 | A班陈旻霄 | 骑士遍历2 | C++ | 运行超时 | 9 | 1000 MS | 256 KB | 847 | 2024-08-21 15:34:10 |
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; int dx[]={-1,-2,-2,-1,1,2,2,1}; int dy[]={2,1,-1,-2,-2,-1,1,2}; int n,a[15][15]; bool vis[15][15]; bool check(int x,int y) { return x>=1&&x<=n&&y>=1&&y<=n&&!vis[x][y]; } void dfs(int x,int y,int step) { if(step==n*n) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cout<<a[i][j]<<' '; cout<<endl; } exit(0); } for(int i=0;i<8;i++) { int nx=x+dx[i],ny=y+dy[i]; if(check(nx,ny)) { a[nx][ny]=step+1; vis[nx][ny]=1; // for(int i=1;i<=n;i++) // { // for(int j=1;j<=n;j++) cout<<a[i][j]<<' '; // cout<<endl; // } // cout<<endl; dfs(nx,ny,step+1); a[nx][ny]=0; vis[nx][ny]=0; } } } int main() { int x,y; cin>>n>>x>>y; vis[x][y]=1; a[x][y]=1; dfs(x,y,1); cout<<-1; return 0; }