#include<stdio.h>
#include<stdlib.h>
int data[100][100] = {0};
int Dx[8] = {-1,1,-2,2,-2,2,-1,1};
int Dy[8] = {-2,-2,-1,-1,1,1,2,2};
int row,col;
int cun[100][2] = {0};
bool ret = false;
void DFS(int x,int y,int step);
int main()
{
int n;
//freopen("a.txt","r",stdin);
scanf("%d",&n);
for(int l = 0;l < n;l++)
{
ret = false;
scanf("%d",&row);
scanf("%d",&col);
printf("Scenario #%d:\n",l + 1); data[0][0] = 1;
DFS(0,0,1);
data[0][0] = 0;
if(ret){
goto v;
} if(ret == false){
printf("impossible\n\n");
continue;
}
v:for(int k = 0;k < row * col;k++)
{
printf("%c%d",cun[k][1] + 65,cun[k][0] + 1);
cun[k][0] = 0;
cun[k][1] = 0;
}
printf("\n\n");
}
return 0;
}
void DFS(int x,int y,int step)
{
if(step == row * col)
{
ret = true;
return;
}
for(int i = 0;i < 8;i++)
{
int Nx = x + Dx[i];
int Ny = y + Dy[i];
if(data[Nx][Ny] == 0 && Nx >= 0 && Nx < row && Ny >= 0 && Ny < col)
{
data[Nx][Ny] = 1;
cun[step][0] = Nx;
cun[step][1] = Ny;
DFS(Nx,Ny,step + 1);
data[Nx][Ny] = 0;
if(ret)
{
return;
}
cun[step][0] = 0;
cun[step][1] = 0; }
}
}

poj2488骑士马走的更多相关文章

  1. noi 8465 马走日

    8465:马走日 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y ...

  2. 【算法】深度优先 马走日 Hamilton routes

    在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. ××××××××××××× 类似问题: 在半个中国象棋棋盘上,马在左下角(1,1)处 ...

  3. Problem L: 搜索基础之马走日

    Problem L: 搜索基础之马走日 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 134  Solved: 91[Submit][Status][W ...

  4. 小米 oj 马走日 (bfs 或 双向bfs)

     马走日 序号:#56难度:困难时间限制:1500ms内存限制:10M 描述 在中国象棋中,马只能走日字型.现在给出一个由 N*M 个格子组成的中国象棋棋盘( 有(N+1)*(M+1)个交叉点可以落子 ...

  5. T1219:马走日

    [题目描述] 马在中国象棋以日字形规则移动. 请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. [输入] 第 ...

  6. 马走日的解法(dfs)

    马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. Input 第一行为整数T ...

  7. F: Horse Pro 马走棋盘 BFS

    F: Horse Pro 豆豆也已经开始学着玩象棋了,现在豆豆已经搞清楚马的走法了,但是豆豆不能确定能否在 100 步以内从一个点到达另一个点(假设棋盘无限大). Input 第一行输入两个整数 x1 ...

  8. poj2488骑士之旅

    题目大意:国际象棋里面的马,有那么8种跳法,然后题目给出一个棋盘的大小p*q, 求有没有路线可以使得这个马能把整个棋盘的格全部走一遍,有的话按照字典序将第一条路线打印出来. 注意:国际象棋是行是数字, ...

  9. NOI2.5 8465:马走日

    描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. 输入 第一行为整数T ...

随机推荐

  1. 解决Can't connect to MySQL server on 'localhost' (10048)

    解决Can't connect to MySQL server on 'localhost' (10048) 您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay ...

  2. 【Network】高性能 UDP 应该怎么做?

    参考资料: EPOLL-UDP-GOLANG golang udp epoll - Google 搜索 go - golang: working with multiple client/server ...

  3. [转]在MyEclipse中设置struts.xml自动提示功能

    导入标签:<%@ taglib uri="/struts-tags" prefix="s" %> 要想在MyEclipse中实现struts.xml ...

  4. OF寄存器的判断

      1000 0000 ADD  1100 0000  10 1:符号位是否有进位  有则为1 2:最高有效数值位是否向符号位产生进位  有则为1 1 XOR 0=1所以PF=1

  5. JS面试题-算法台阶问题

    有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后 ...

  6. ios如何一个证书多台设备测试

    在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解 ...

  7. ASP.NET MVC与ASP.NET Web Form简单区别与适用场景

    概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...

  8. JAVA基础再回首

    http://blog.csdn.net/m366917/article/details/51559031

  9. ThinkPHP的D方法和M方法的区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  10. ContentControl与ContentPresenter区别?

    <TextBlock HorizontalAlignment="Left" Text="{Binding HwContent, Converter={StaticR ...