基础BFS,水过就好~手写队列优化~~

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
const double pi = acos(-1.0);
const int mod =9973; const int N =1e1+10; struct asd{
int x,y;
int step;
};
asd no,ne;
asd q[N*N];
int sx,sy,ex,ey;
int dx[8]={-1,-1,-2,-2,1,1,2,2};
int dy[8]={2,-2,1,-1,-2,2,-1,1};
bool vis[N][N]; int BFS()
{
memset(vis,0,sizeof(vis));
int head,tail;
head=0;
tail=1;
q[head].x=sx;
q[head].y=sy;
vis[sx][sy]=1;
while(head<tail)
{
int ax=q[head].x;
int ay=q[head].y;
if(ax==ex&&ay==ey)
return q[head].step;
for(int i=0;i<8;i++)
{
int aa=dx[i]+ax;
int bb=dy[i]+ay;
if(aa<0||aa>7||bb<0||bb>7||vis[aa][bb])
continue;
vis[aa][bb]=1;
q[tail].x=aa;
q[tail].y=bb;
q[tail].step=q[head].step+1;
tail++;
}
head++;
}
} int main()
{
char a[5],b[5];
while(~scanf("%s%s",a,b))
{
memset(vis,0,sizeof(vis));
sx=a[0]-'a';
sy=a[1]-'0'-1;
ex=b[0]-'a';
ey=b[1]-'0'-1;
int qq;
qq=BFS();
printf("To get from %s to %s takes %d knight moves.\n",a,b,qq);
}
return 0;
}

跳马~~~HDU1372的更多相关文章

  1. [itint5]跳马问题加强版

    http://www.itint5.com/oj/#12 首先由跳马问题一,就是普通的日字型跳法,那么在无限棋盘上,任何点都是可达的.证法是先推出可以由(0,0)到(0,1),那么由对称型等可知任何点 ...

  2. HDU1372:Knight Moves(经典BFS题)

    HDU1372:Knight Moves(BFS)   Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %l ...

  3. [BZOJ 4417][Shoi2013]超级跳马

    4417: [Shoi2013]超级跳马 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 379  Solved: 230[Submit][Status ...

  4. 洛谷 P3990 [SHOI2013]超级跳马 解题报告

    P3990 [SHOI2013]超级跳马 题目描述 现有一个\(n\) 行 \(m\) 列的棋盘,一只马欲从棋盘的左上角跳到右下角.每一步它向右跳奇数列,且跳到本行或相邻行.跳越期间,马不能离开棋盘. ...

  5. 骑士周游问题跳马问题C#实现(附带WPF工程代码)

    骑士周游问题,也叫跳马问题. 问题描述: 将马随机放在国际象棋的8×8棋盘的某个方格中,马按走棋规则进行移动.要求每个方格只进入一次,走遍棋盘上全部64个方格. 代码要求: 1,可以任意选定马在棋盘上 ...

  6. cogs——49. 跳马问题

    49. 跳马问题 水题 dfs裸基础 #include<cstdio> using namespace std; ]={,,,,}, ans,my[]={,-,,-,}; inline v ...

  7. code vs 1216 跳马问题

    1216 跳马问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 题目 输入描述 Input Descri ...

  8. cogs 49. 跳马问题

    49. 跳马问题 ★   输入文件:horse.in   输出文件:horse.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 有一只中国象棋中的 “ 马 ” ,在半张 ...

  9. poj2243 &amp;&amp; hdu1372 Knight Moves(BFS)

    转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接: POJ:http: ...

随机推荐

  1. android学习笔记三--Activity 布局

    1.线性布局 标签 :<LinearLayout></LinearLayout> 方向:android:orientation, 垂直:vertical 水平:Horizont ...

  2. SQL server 子查询 链接查询

    数据库 if while else 的使用 数据库运算符优先级

  3. for in 与for of

    最近在项目中需要用到遍历对象,用ES6 for of对象后报如下错误  TypeError: [object Object] is not iterable!,网上查询阮大神的教程发现“ES6 的有些 ...

  4. atitit.窗口静听esc退出本窗口java swing c# .net php

    atitit.窗口静听esc退出本窗口java swing c# .net php 1. 监听esc  按键 1 1.1. 监听一个组件 1 1.2. 监听加在form上 1 2. 关闭窗口 2 1. ...

  5. MySQL中给自定义的字段查询结果添加排名的方法

    我正在用 MySQL 客户端的时候,突然想到如果可以给查询结果添加排名该多好啊,然后就找到了一个简单的解决办法. 下面是一个示例表的数据:  然后我们要根据 Roll_No 字段进行排序并给出排名,我 ...

  6. [网页游戏开发]Morn组件赋值

    在讲解List之前,我们先介绍一下Morn组件赋值功能 默认属性赋值 界面逻辑开发过程中,经常会涉及到动态更改UI属性,比如: 界面有一个按钮,一个多选框和一个文本,分别命名为myButton,myC ...

  7. run as maven test报错解决办法

    eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is ...

  8. BZOJ 4976: 宝石镶嵌 背包

    4976: 宝石镶嵌 Time Limit: 2 Sec  Memory Limit: 128 MB Description 魔法师小Q拥有n个宝石,每个宝石的魔力依次为w_1,w_2,...,w_n ...

  9. 使用cwRsync在Windows的目录之间增量同步文件

    http://www.qiansw.com/using-cwrsync-in-the-windows-directory-between-the-incremental-synchronization ...

  10. 小玩Spring Boot

    Spring Boot是Spring Mvc的升级版 号称是替代者 也是微服务的微框架基础 有3启动方式 用IntelJ IDEA 生成spring boot工程 1.有个入口类 可以直接run as ...