poj2488骑士马走
#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骑士马走的更多相关文章
- noi 8465 马走日
8465:马走日 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y ...
- 【算法】深度优先 马走日 Hamilton routes
在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. ××××××××××××× 类似问题: 在半个中国象棋棋盘上,马在左下角(1,1)处 ...
- Problem L: 搜索基础之马走日
Problem L: 搜索基础之马走日 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 134 Solved: 91[Submit][Status][W ...
- 小米 oj 马走日 (bfs 或 双向bfs)
马走日 序号:#56难度:困难时间限制:1500ms内存限制:10M 描述 在中国象棋中,马只能走日字型.现在给出一个由 N*M 个格子组成的中国象棋棋盘( 有(N+1)*(M+1)个交叉点可以落子 ...
- T1219:马走日
[题目描述] 马在中国象棋以日字形规则移动. 请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. [输入] 第 ...
- 马走日的解法(dfs)
马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. Input 第一行为整数T ...
- F: Horse Pro 马走棋盘 BFS
F: Horse Pro 豆豆也已经开始学着玩象棋了,现在豆豆已经搞清楚马的走法了,但是豆豆不能确定能否在 100 步以内从一个点到达另一个点(假设棋盘无限大). Input 第一行输入两个整数 x1 ...
- poj2488骑士之旅
题目大意:国际象棋里面的马,有那么8种跳法,然后题目给出一个棋盘的大小p*q, 求有没有路线可以使得这个马能把整个棋盘的格全部走一遍,有的话按照字典序将第一条路线打印出来. 注意:国际象棋是行是数字, ...
- NOI2.5 8465:马走日
描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. 输入 第一行为整数T ...
随机推荐
- PHP的单态类——为了产生唯一的对象
pdo就是使用了单态类,使得对象永远只实例化一次,减少了内存消耗. 单态类: <?php class A{ private static $a = null; private function ...
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
- 用DateTime的ParseExact方法解析特殊的日期时间
今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间. 使用最 ...
- C# 委托及各种写法
委托是神马? 委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法).通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法, ...
- ubuntu下安装mcrypt
sudo apt-get install libmcrypt4 php5-mcrypt 一句命令搞定
- 初学Redis(1)——认识Redis
Redis官网对Redis的定义是:“Redis is an open source, BSD licensed, advanced key-value cache and store”,可以看出,R ...
- ASP.NET 保存txt文件
public void ProcessRequest(HttpContext context) { context.Response.Clear(); context.Response.Buffer ...
- kettle系列-3.kettle读取数据库资源库很慢的优化
环境:windows7,jvm内存设置14G,kettle5.1后来升级到5.4,oracle作为资源库. 问题背景:我们通过web页面管理kettle的job运行,这只是一个管理界面,即使web项目 ...
- poi导出word、excel
在实际的项目开发中,经常会有一些涉及到导入导出的文档的功能.apache开源项目之一poi对此有很好的支持,对之前的使用做一些简要的总结. 1,导入jar 为了保证对格式的兼容性,在项目的pom.xm ...
- MySQL存储过程与存储函数的区别
语法定义上的区别就不说了,说一下其他的.如果有不正确的地方,还请大家指正. 1.总述存储函数和存储过程统称为存储例程(stored routine).两者的定义语法很相似,但却是不同的内容.存储函数限 ...