#include <stdio.h>
#define MAX 27
void dfs(int i, int j);int dx[8] = {-1, 1, -2, 2, -2, 2, -1, 1};
int dy[8] = {-2, -2, -1, -1, 1, 1, 2, 2};
int marked[MAX][MAX];   //标记
int pathx[MAX];
int pathy[MAX];
int flag, step;
int p,q;int main(void) {int n;int i = 0;int j, k;scanf("%d", &n);while (i++ < n) {      scanf("%d%d", &p, &q);for (j = 1; j <= p; j++) {for (k = 1; k <= q; k++)marked[j][k] = 0;}flag = 0;step = 0;dfs(1, 1);      //从(A, 1)开始搜索printf("Scenario #%d:\n", i);if (flag) {for (j = 1; j <= p * q; j++)printf("%c%d", pathy[j] + 'A' - 1, pathx[j]);printf("\n");}else printf("impossible\n");printf("\n");}}void dfs(int i, int j) {int x, y;int k;if (flag == 1)  return;marked[i][j] = 1;         //标记step++;pathx[step] = i;pathy[step] = j;if (step == p * q){flag = 1;return;}//注意:二维数组和棋盘的坐标x, y是反的for (k = 0; k < 8; k++) {x = i + dx[k];y = j + dy[k];if (marked[x][y] != 1 && x <= p && x>= 1 && y <= q && y >= 1) {dfs(x, y);step--;         //走错了回退时步数-1}}marked[i][j] = 0;       //撤销标记
}

POJ-2488 国际象棋马的走法 (深度优先搜索和回溯)相关推荐

  1. Nuist集训队作业:深度优先搜索(回溯算法)

    Nuist集训队第一次作业:深度优先搜索(回溯算法) 引例 深搜基本思想及回溯算法模板 P1706 全排列问题 P1219 八皇后 P1605 迷宫 P1101 单词方阵 小结 引例 国际西洋棋棋手马 ...

  2. 马走日(深度优先搜索)

    002:马走日 题目链接:http://cxsjsxmooc.openjudge.cn/2017t2summerfinal/002/ 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中 ...

  3. 详解深度优先搜索与回溯

    严格来说,搜索也是一种暴力枚举策略,传统的枚举需要固定for循环的层数,但是这样不能随意增减枚举层数,本文将介绍一种新的利用递归的方式枚举每个可能的选项,如果合法就继续下一个,如果所有选项都不合法就退 ...

  4. 深度优先搜索与岛屿问题

    深度优先搜索概述 深度优先搜索(缩写DFS)是一种在开发爬虫早期使用较多的方法.属于图算法的一种,也是对一个连通图进行遍历的算法.其思想是:从一个顶点 v 开始,沿着一条路线一直走到底,如果发现不能到 ...

  5. python DFS深度优先搜索及N皇后问题求解

    DFS可谓是算法里的一个大头,不懂DFS都不敢承认自己学过数据结构.今天菜鸡我要逆袭了,先从经典的N皇后问题搞起,试试DFS水深几尺[略加思索] 内容篇幅有点长,不想看我对DFS嗷嗷叫的朋友还是直接去 ...

  6. 回溯法与深度优先搜索的关系

    回溯简介 回溯是搜索算法中的一种控制策略,它的基本思想是:为了求得问题的解,先选择一种可能的情况向前探索,如果在探索过程中发现原来的选择是错误的,就退回一步重新选择,如此反复进行,直到穷举出所有情况, ...

  7. POJ 3009 Curling 2.0(深度优先搜索+剪枝)

    POJ 3009  Curling 2.0 题目大意: 在一块光滑的h*w的矩形平面上,有若干个障碍物,用1表示以及空格用0表示.现在有一个小球在平面上的数字2的地方,通过抛掷这个小球,使其达到数字3 ...

  8. 深度优先搜索----poj 1321棋盘问题

    题目描述 棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 63237   Accepted: 30234 Descr ...

  9. POJ 2488 - A Knight‘s Journey + Python

    这是一个深度优先搜索DFS题目. 原题连接:2488 -- A Knight's Journey 参考资料:POJ 2488 - A Knight's Journey | 眈眈探求 参考资料:POJ2 ...

最新文章

  1. linux进程与端口查看命令
  2. 编码练习——Java-String-API-练习
  3. U3D游戏运行时资源是如何从AB中加载出来的
  4. vue搜索好友_Vue实现类似通讯录功能(中)
  5. 折半查找法(二分查找法)
  6. eclipse 界面设置与字体更改
  7. 当你使用微信和QQ的时候,请不要忘记ICQ这个伟大的公司!
  8. Python与机器视觉(三)图像保存
  9. Java 设计模式之装饰器模式
  10. 包,logging日志模块,copy深浅拷贝
  11. DEM数据下载,拼接,裁剪
  12. 苹果cmsV10资源站模板
  13. 【Unity3D】简单的鼠标打飞碟(Hit UFO)游戏
  14. swfupload 无法加载_文件上传插件SWFUpload的使用指南
  15. Android7.1.1新增Shortcuts快捷方式,让App更加快捷方便
  16. HCIA网络基础17-HDLC和PPP
  17. arXiv每日推荐-3.19:语音/音频每日论文速递
  18. Android 连续点击屏幕(次数可定,事件可定)后进行操作
  19. MSP432学习笔记:ADC14
  20. xgboost 自定义评价函数(metric)与目标函数

热门文章

  1. Counterfeit Dollar 模拟-枚举
  2. 一年考研经历的回顾和总结(2)——不一样的辞职考研
  3. 使用卷积神经网络和openCV预测年龄和性别
  4. iOS 当前系统的语言
  5. 台式电脑怎么进入修复计算机,电脑为什么提示自动修复?电脑开机提示自动修复的解决办法...
  6. 互联网日报 | 2月25日 星期四 | 吉利与沃尔沃宣布达成最佳合并方案;货拉拉公布整改方案;中国成美国手游市场最大进口国...
  7. 国庆节这么玩微信腾讯服务器,2019十一旅游怎么发朋友圈 国庆节旅游微信心情说说...
  8. 东方百货集团荆门东方百货连锁超市
  9. 【翻译】Image-to-Image Translation with Conditional Adversarial Networks
  10. 华硕主板 BIOS 的升级与管理