Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180439 | 李澄 | 骑士遍历1 | C++ | 解答错误 | 10 | 0 MS | 252 KB | 655 | 2024-08-21 13:29:41 |
#include <bits/stdc++.h> using namespace std; int road[100], dx[5]= {0,1,2,2,1}, dy[5]= {0,-2,-1,1,2}; int tx, ty; bool flag; void dfs(int x, int y, int k) { if (flag == 1) { return; } if (x == tx && y == ty) { flag = 1; for (int i = 0; i < k; i++) { cout << road[i] << " "; } return; } if ((ty - y) > 2 * (tx - x)) return; for (int i = 1; i <= 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; if (!flag && nx >= 1 && nx <= tx && ny >= 1 && ny <= ty) { road[k] = i; dfs(nx, ny, k + 1); } } return; } int main() { cin >> tx >> ty; dfs(1, 1, 0); return 0; }