【POJ】2488 A Knight‘s Journey
2022/1/29 23:05:27
本文主要是介绍【POJ】2488 A Knight‘s Journey,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
因为需要输出完整的访问路径,因此采用DFS比较好,注意因为题目要求按照字典序输出,因此direction数组只能有一种构造方式:
#include <iostream> #include <cstdio> #include <string> #include <cstring> using namespace std; int direction[8][2] = { {-1, -2}, {1, -2}, {-2, -1}, {2, -1}, {-2, 1}, {2, 1}, {-1, 2}, {1, 2} }; const int N = 30; bool visited[N][N]; int p, q; bool DFS(int x, int y, int step, string ans){ if(step == p * q){ cout<<ans<<endl<<endl; return true; } for(int i = 0;i < 8;i++){ int nx = x + direction[i][0]; int ny = y + direction[i][1]; if(nx < 0 || nx >= p || ny < 0 || ny >= q || visited[nx][ny]) continue; visited[nx][ny] = true; char col = ny + 'A'; char row = nx + '1'; if(DFS(nx, ny, step + 1, ans + col + row)) return true; visited[nx][ny] = false; } return false; } int main(){ int n; scanf("%d", &n); for(int i = 0;i < n;i++){ scanf("%d%d", &p, &q); printf("Scenario #%d:\n", i + 1); memset(visited, false, sizeof(visited)); visited[0][0] = true; if(!DFS(0, 0, 1, "A1")) printf("impossible\n\n"); } return 0; }
这篇关于【POJ】2488 A Knight‘s Journey的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API