Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180603 | C班 黄一航 | 骑士遍历1 | C++ | 运行超时 | 1 | 1000 MS | 504 KB | 576 | 2024-08-21 16:28:30 |
#include<bits/stdc++.h> using namespace std; int fx[]={-2,-1,1,2}; int fy[]={1,2,2,1}; int a,b; int k[10001]; bool f=false; bool vis[10001][10001]; void dfs(int x,int y,int step,int fangwei){ if(vis[x][y]) return; if(x<1||y<1||x>a||y>b) return; if(fangwei) k[step]=fangwei; vis[x][y]=1; if(x==a&&y==b){ if(!f) for(int i=2;i<=step;i++) cout << k[i] << " "; f=true; return; } for(int i=0;i<4;i++){ dfs(x+fx[i],y+fy[i],step+1,i+1); } vis[x][y]=0; return; } int main(){ cin >> b >> a; dfs(1,1,1,0); if(!f) cout << -1; return 0; }