Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180522 | 黄锦昱 | 骑士遍历1 | C++ | 运行超时 | 3 | 1000 MS | 720 KB | 645 | 2024-08-21 15:31:07 |
#include<bits/stdc++.h> using namespace std; int n, m; bool vis[10005][10005]; int dx[5] = {0, 1, 2, 2, 1}; int dy[5] = {0, -2, -1, 1, 2}; bool flag = 0; vector<int> ans; void dfs(int x, int y) { if (x == n && y == m) { flag = 1; for (int i : ans) cout << i << " "; return; } for (int i = 1; i <= 4; ++i) { int cx = x + dx[i], cy = y + dy[i]; if (cx > n || cx < 1) continue; if (cy > n || cy < 1) continue; if (vis[cx][cy]) continue; ans.push_back(i); vis[cx][cy] = 1; dfs(cx, cy); if (flag) return; ans.pop_back(); vis[cx][cy] = 0; } } int main() { cin >> n >> m; dfs(1, 1); }