Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180441 | 孔心悦 | 骑士遍历1 | C++ | 运行出错 | 0 | 0 MS | 92 KB | 569 | 2024-08-21 13:35:40 |
#include <bits/stdc++.h> using namespace std; const int dx[]={0,2,1,-1,-2}; const int dy[]={0,1,2,2,1}; int ex,ey,a[10005],t=0,flag=0,n,m,vis[10005][10005]; void dfs(int x,int y){ if(flag)return ; if(x==ex&&y==ey){ for(int i=1;i<=t;i++)cout<<a[i]<<' '; flag=1; return ; } for(int i=1;i<=4;i++){ int nx=x+dx[i],ny=y+dy[i]; if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&vis[nx][ny]==0){ vis[nx][ny]=1; a[++t]=i; dfs(nx,ny); t--; } } } int main(){ cin>>m>>n; ex=1;ey=m; vis[n][1]=1; dfs(n,1); if(!flag)cout<<-1; return 0; }