走马步,求能否遍历棋盘上所有格,如能,按最小字典序输出路径。

做这题时我又看了下以前写的poj 2676,把代码又改进了下。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int X[] = {-2,-2,-1,-1,1,1,2,2},
 4     Y[] = {-1,1,-2,2,-2,2,-1,1};
 5 int m,n,path[26][2];
 6 bool find,vis[13][13];
 7 void dfs(int a,int b,int k)
 8 {
 9     int i,x,y;
10     //if(find) return ;
11     if(k >= m*n)
12     {
13         find = 1;
14         for(i = 0; i < m*n; i++)
15             printf("%c%d",path[i][0]+'A',path[i][1]+1);
16         printf("\n\n");
17         memset(vis,0,sizeof vis);
18         return;
19     }
20     for(i = 0; i < 8; i++)
21     {
22         x = a+X[i];
23         y = b+Y[i];
24         if(!find && x>=0 && y>=0 && x<m && y<n && !vis[x][y])
25         {
26             vis[x][y] = 1;
27             path[k][0] = x;
28             path[k][1] = y;
29             dfs(x,y,k+1);
30             vis[x][y] = 0;
31         }
32     }
33 }
34 int main()
35 {
36     int T,ca=1;
37     scanf("%d",&T);
38     while(T--)
39     {
40         scanf("%d%d",&n,&m);
41         printf("Scenario #%d:\n",ca++);
42         find = 0;
43         vis[0][0] = 1;
44         dfs(0,0,1);
45         if(!find) printf("impossible\n\n");
46     }
47     return 0;
48 }

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/11/08/2761698.html

poj - 2488 A Knight's Journey相关推荐

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

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

  2. POJ 2488 A Knight's Journey (棋盘DFS)

    A Knight's Journey   大意: 给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径. 1 #include <map> 2 #in ...

  3. POJ 2488 A Knight's Journey

    题意:给一个n×m的棋盘,如果一个骑士可以从任意一个位置出发不重复的走遍棋盘的每个格子就输出字典序最短的路径. 解法:dfs.暴搜n×m次,只是被字典序输出坑了--而且字母是列序号数字是行序号--这两 ...

  4. TOJ 1702.A Knight's Journey

    2015-06-05 问题简述: 有一个 p*q 的棋盘,一个骑士(就是中国象棋里的马)想要走完所有的格子,棋盘横向是 A...Z(其中A开始 p 个),纵向是 1...q. 原题链接:http:// ...

  5. A Knight‘s Journey(POJ-2488)

    A Knight's Journey 题目 题目大意 题目思路 代码 题目 Description Background The knight is getting bored of seeing t ...

  6. OpenJudge NOI 2.5 1490:A Knight‘s Journey

    [题目链接] OpenJudge NOI 2.5 1490:A Knight's Journey 疑问:题目说可以从任意点出发,以任意点结束.为什么我看他人的代码中,只写从(1,1)出发的情况也能过呢 ...

  7. 【poj 2488】A Knight's Journey 中文题意题解代码(C++)

    题目链接: http://poj.org/problem?id=2488 中文题意: 给出一个p行q列的国际棋盘,马可以从任意一个格子开始走,问马能否不重复的走完所有的棋盘.如果可以,输出按字典序排列 ...

  8. Poj(2488),按照字典序深搜

    题目链接:http://poj.org/problem?id=2488 思路:按照一定的字典序深搜,当时我的想法是把所有的可行的路径都找出来,然后字典序排序. 后来,凡哥说可以在搜索路径的时候就按照字 ...

  9. POJ 2243:Knight Moves(双向BFS)

    http://poj.org/problem?id=2243 问题概述:一个8*8的棋盘,给定一个起点(列a-h,行1-8)和一个终点(列a-h,行1-8),按骑士的走法(走日字),从起点到 终点最少 ...

最新文章

  1. arcgis两点之间连线_ArcGIS中实现一种流向地图的方法
  2. 3.1 SVM原理入门
  3. jstl 处理Date 时间
  4. pypinyin 获取多音字的拼音组合
  5. OS X Capitan 和 macOS Sierra U盘安装
  6. php怎么循环显示图片,thinkphp 循环显示图片问题!!!~~~~
  7. Android 高德地图自定义InfoWindow
  8. 无向图的邻接表表示法
  9. 用计算机如何修改wif密码,电脑怎么修改无线网(WIFI)密码?
  10. js 计算两个时间的之间的天数
  11. 爱签电子合同电子签章助力银行数智化发展
  12. 钉钉ppt放映显示备注_PPT的备注怎么用,放映PPT时如何显示备注 来看看吧
  13. 不要把5G压力都留给运营商,华为自动驾驶网络是个聪明的方法
  14. Web网站模板-小清新企业个人营销宣传响应式网站模板(HTML+CSS+JavaScript)
  15. 关于c++中vector的push_back、拷贝构造copy constructor和移动构造move constructor
  16. 信息安全实验五 之 计算机病毒与黑客实验脚本【恶意网页病毒演示病毒制作木马捆绑】
  17. vid 和pvid的区别
  18. 使用System Center DPM 2012 SP1保护企业关键数据(一)部署SCDPM
  19. 54岁失业,97岁拿诺贝尔奖:对苦难保持耐心,才能笑到最后
  20. 小新air15为啥没人买_联想小新Air 2018款值得买吗?2018联想小新Air 15轻薄本首发全面评测图解...

热门文章

  1. 基于python的图像分割并计数
  2. java设置默认参数_关于java:如何设置默认方法参数值?
  3. redis 系列10 字符串对象
  4. JavaScript基础---匿名函数
  5. 数据结构:分块-区间加法、区间乘法和单点查询
  6. mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'
  7. 网络基础Cisco路由交换四
  8. php array_key_exists() 与 isset() 的区别
  9. 多少像素才合适 网页设计标准尺寸大讲解
  10. SayMedia总览