Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180658 | B---何嘉轩 | 骑士遍历1 | C++ | 解答错误 | 10 | 0 MS | 256 KB | 611 | 2024-08-21 17:10:45 |
#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 a,b; void dfs(int q,int w,int k){ if(f){ return; } if(w==b&&q==a){ f=true; for(int i=1;i<k;i++){ printf("%d",res[i]); cout<<" "; } return; } if((b-w)>2*(a-q)){ return; } int qq,ww; for(int i=1;i<=4;i++){ qq=q+dx[i]; ww=w+dy[i]; if(!f&&qq>=1&&qq<=a&&ww>=1&&ww<=b){ res[k]=i; dfs(qq,ww,k+1); } } } int main(){ scanf("%d%d",&a,&b); dfs(1,1,1); if(!f){ printf("-1\a"); } return 0; }