题目大意:

给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。

思路:

dfs即可,难点在于题目要求以字典序输出,所以对于搜索的顺序有要求

dx[] = { -1, 1, -2, 2, -2, 2, -1, 1 };

dy[] = { -2, -2, -1, -1, 1, 1, 2, 2 };

/*dfs骑士环游问题
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool b[30][30], flag;
int dx[] = { -1, 1, -2, 2, -2, 2, -1, 1 },dy[] = { -2, -2, -1, -1, 1, 1, 2, 2 };
int n, m, end;
char ch[60];bool isfoot(int x, int y)
{return (x>= 0 && x< n && y>= 0 && y< m);
}void dfs(int x, int y, int count, char *ch)
{if(flag)return;if(count == end){puts(ch);flag = true;return;}   for(int i = 0; i< 8; i++){int xx = x + dx[i];int yy = y + dy[i];if(isfoot(xx, yy) && !b[xx][yy]){b[xx][yy] = true;ch[count] = yy + 'A';ch[count+1] = xx + '1';dfs(xx, yy, count+2, ch);b[xx][yy] = false;}}
}void slove()
{scanf("%d%d", &n, &m);end = n*m*2;flag = false;for(int i = 0; i< m; i++){if(flag)break;for(int j = 0; j< n; j++){memset(ch, 0, sizeof(ch));memset(b, 0, sizeof(b));ch[0] = i + 'A';ch[1] = j + '1';b[j][i] = true;dfs(j, i, 2, ch);if(flag)break;}}if(!flag)printf("impossible\n");printf("\n");
}int main()
{int n;scanf("%d", &n);for(int i = 1; i<= n; i++){printf("Scenario #%d:\n", i);slove();}return 0;
}

转载于:https://www.cnblogs.com/ygdblogs/p/4935662.html

poj2488-A Knight's Journey【DFS】相关推荐

  1. POJ2488 A Knight's Journey(DFS)

    题意: 输入一些棋盘对应的行和列,看骑士(日字)能不能走完整个棋盘,可以从任何地方开始,注意要字典序输出 要点: 虽然说骑士可以从棋盘上任意一点出发,但因为要按字典序(lexicographicall ...

  2. Bailian2815 城堡问题【DFS】

    2815:城堡问题 总时间限制: 1000ms 内存限制: 65536kB 描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | ...

  3. Bailian2816 红与黑【DFS】

    2816:红与黑 总时间限制: 1000ms 内存限制: 65536kB 描述 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一 ...

  4. NUC1158 Lake Counting【DFS】

    Lake Counting 时间限制: 1000ms 内存限制: 65536KB 通过次数: 1总提交次数: 1 问题描述 Due to recent rains, water has pooled ...

  5. NUC1399 Sum It Up【DFS】

    Sum It Up 时间限制: 1000ms 内存限制: 65535KB 通过次数: 1总提交次数: 1 问题描述 Given a specified total t and a list of n ...

  6. NUC1333 Knight Moves【DFS】

    Knight Moves 时间限制: 1000ms 内存限制: 65535KB 问题描述 A friend of you is doing research on the Traveling Knig ...

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

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

  8. HDU1181 变形课【DFS】(废除)

    新题解参见:HDU1181 变形课[DFS+关系闭包+bitset] 变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 13107 ...

  9. 【DFS】巧妙取量的倒油问题

    题目描述 [题目描述]  有三个容器,容量分别为 a,b,c(a> b > c ),一开始a装满油,现在问是否只靠abc三个容器量出k升油.如果能就输出"yes",并且 ...

  10. [kuangbin]专题三 Dancing Links Squiggly Sudoku HDU - 4069【DFS】【精确覆盖】

    [题目描述] Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that each ...

最新文章

  1. 总结关于Set集合的一些基本用法
  2. 专访@爱可可-爱生活:如何做好科学研究(干货满满)
  3. 034_webpack中的加载器
  4. 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法...
  5. RTX5 | 线程管理03 - 线程退出osThreadExit
  6. 集成学习—Adaboost(论文研读)
  7. wechart image标签
  8. 【关键词排名点击软件】网站关键词挖掘常用的五个工具
  9. Java知识点复习:Day14
  10. cocos2dx 通用性能优化方案
  11. Python期末考试题库
  12. 计算机发展简史及其关键技术年表
  13. 2021年创新实践部第一次培训电脑拆装总结
  14. 啊5G 你比4G多1G
  15. 转:杰克·韦尔奇: 好的CEO既有勇气放手,又懂得干涉
  16. 双非二战一志愿上岸国科大杭州高等研究院经验
  17. python实现爬取某度文库文字
  18. 7-2 IP地址转换 (15 分)
  19. java owa_微软将新增禁止38种OWA副档名档案,包含Java、Python等
  20. KDZD8119高压漏电起痕试验机

热门文章

  1. BGP华为、思科选路规则
  2. TextureView实现视频播放
  3. vijos1846 [NOIP2013] 华容道【最短路】
  4. lucene创建索引的几种方式(一)
  5. CSS的样式合并与模块化
  6. 在ubuntu下配置C和C++的编译环境
  7. 前端框架Vue(3)——vue-cli 目录结构
  8. Deploy a replica set
  9. 6.Docker技术入门与实战 --- Docker数据管理
  10. 16.深入分布式缓存:从原理到实践 --- 新的旅程