poj-2488 A Knight's Journey
来源:互联网 发布:linux 网卡网关 编辑:程序博客网 时间:2024/06/05 18:19
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>int map[50][50];int p, q;int move[8][2] = {-1, -2, 1, -2, -2, -1, 2, -1, -2, 1, 2, 1, -1, 2, 1, 2};int pn[50];char qn[50];int flag;void dfs(int num, char ch, int step) {int i;if(step == p * q) {flag = 1;int k;for(k = 0; k < step; k++) {printf("%c%d", qn[k], pn[k]);}printf("\n");return;}for(i = 0; i < 8; i++) {int tnum = num + move[i][0];char tch = ch + move[i][1];if(tnum < 0 || tch < 'A' || tnum >= p || tch >= 'A' + q || map[tnum][tch - 'A'] == 1 || flag) {continue;}else {map[tnum][tch - 'A'] = 1;pn[step] = tnum + 1;qn[step] = tch;dfs(tnum, tch, step + 1);map[tnum][tch - 'A'] = 0;}}}int main() {int n;scanf("%d", &n);int count = 0;while(n--) {scanf("%d %d", &p, &q);flag = 0;memset(map, 0, sizeof(map));printf("Scenario #%d:\n", ++count);map[0][0] = 1;pn[0] = 1;qn[0] = 'A';dfs(0, 'A', 1);if(!flag) printf("impossible\n");printf("\n");}return 0;}
0 0
- POJ 2488 A Knight's Journey
- POJ 2488 A Knight's Journey DFS
- Poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey (dfs)
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ-2488-A Knight's Journey
- POJ 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ 2488(A Knight's Journey)
- POJ 2488 A Knight's Journey
- POJ-2488-A Knight's Journey
- HDU 1950 Bridging signals(LIS)
- java多组件时如何更新表格
- 20个位运算技巧
- Eclipse常用快捷键
- mysql主备库数据不一致的原因和解决方案(转)
- poj-2488 A Knight's Journey
- 模式匹配(第二篇KMP算法
- linux(ubuntu)系统,进入不了图形界面时,如何进入终端(命令行)?
- 异常处理(Exception)
- Java HashMap 源码解析
- Sublime Text 3 插件汇总
- 南阳oj_(34)韩信点兵
- myeclipse更改deploy location名称
- 浅拷贝、深拷贝以及拷贝构造函数