Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
175504 | C班-杨渔 | 骑士遍历1 | C++ | 通过 | 100 | 0 MS | 260 KB | 585 | 2024-08-21 08:59:10 |
#include <iostream> using namespace std; const int dx[5]={0, 1, 2,2,1}; const int dy[5]={0,-2,-1,1,2}; int n,m,res[10003]; bool f; // void dfs(int x,int y,int k) { if (f) return; if (x==n && y==m) { f=true; for (int i=1;i<k;++i) printf("%d ",res[i]); return; } if ((m-y)>2*(n-x)) return; int xx,yy; for (int i=1;i<=4;++i) { xx=x+dx[i]; yy=y+dy[i]; if (!f && xx>=1 && xx<=n && yy>=1 && yy<=m) { res[k]=i; dfs(xx,yy,k+1); } } } // int main() { scanf("%d%d",&n,&m); dfs(1,1,1); if (!f) printf("-1\n"); return 0; }