Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
175663 | C班-陈乐 | 骑士遍历1 | C++ | 通过 | 100 | 0 MS | 256 KB | 620 | 2024-08-21 09:54:39 |
#include<bits/stdc++.h> using namespace std; const int N=1e4+10; int dx[5]={0,1,2,2,1}; int dy[5]={0,-2,-1,1,2}; int res[N]; bool f; int n,m; 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++) { cout << res[i]; cout<<" "; } 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() { cin >> n >> m; dfs(1,1,1); if(!f) cout << -1; return 0; }