Knight Moves
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 13222   Accepted: 7418

Description

A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squares on a chessboard exactly once. He thinks that the most difficult part of the problem is determining the smallest number of knight moves between two given squares and that, once you have accomplished this, finding the tour would be easy.
Of course you know that it is vice versa. So you offer him to write a program that solves the "difficult" part.

Your job is to write a program that takes two squares a and b as
input and then determines the number of knight moves on a shortest route
from a to b.

Input

The
input will contain one or more test cases. Each test case consists of
one line containing two squares separated by one space. A square is a
string consisting of a letter (a-h) representing the column and a digit
(1-8) representing the row on the chessboard.

Output

For each test case, print one line saying "To get from xx to yy takes n knight moves.".

Sample Input

e2 e4
a1 b2
b2 c3
a1 h8
a1 h7
h8 a1
b1 c3
f6 f6

Sample Output

To get from e2 to e4 takes 2 knight moves.
To get from a1 to b2 takes 4 knight moves.
To get from b2 to c3 takes 2 knight moves.
To get from a1 to h8 takes 6 knight moves.
To get from a1 to h7 takes 5 knight moves.
To get from h8 to a1 takes 6 knight moves.
To get from b1 to c3 takes 1 knight moves.
To get from f6 to f6 takes 0 knight moves.

Source

 
 
 
解析:题意为求从棋盘a处到b处需要跳动的最少次数。广搜一遍即可,要注意骑士的行走方式。
aaarticlea/png;base64,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9XQ97A8+mHnrrVmdOn1CVpHT0vKUygeFH3bOKfn5ZZmZmbGxscOGDZs5c8ngwXPHjRu3evXqixcvUhzPcj2vP/+5bMuWLc8//7xCoXj44YcFrlt5Qhr8mDGbjxw5+v777z/99NMvvPBCfn7+vffe26tXr1tvvfWee+75+uuvhUz/cSmalla8atWquLi4W27JIr8Bn3xS/rvfvXf77b3uuuuuo0ePym1PsCycwrUuhjF267b4nnte5P47YsSfH3jggf/7v/+jmxakRIVi2YoVZSkpKb/+9WsMY3zuuY1bt26dMWNGdHR0t27dMjMzHQ4HxULdOHeugczA9ey54p138gYMGJCT80n//mvOn3dIsOQENx/2rl0XuR72gQPnDB06dMyYMQIPOxkgkIaRk5PTu3fvRx6Zdf/9n2zbtv3o0aN0V3zAZbCwcOGXGzduTEpKUigUAvsLXnHd6sYwxt/97o3Bgwfn5OTk5eXdc889w4YNKy8vFzhJxBWxYMHGt99+m/vZI8sI48ZNeeKJJ6hPCFBBFk6pr2+6//51pHWtXVvy9NPzybHLzv585syZOp1u7NixNTU1FH383Xenb721bZx/yy0fzZ//6c6dO996662+ffsqFIr77rvPYrGIvZR78qSDbMMhkZi44scfq0+dOvXBBx98//33jY2NopqlpaXliSc2kcHOunVfZGTMu+WWT8gq7MyZM1NSUh5//HGBh72lpeXTTw+4Nr8//GFldXX1oUOHXnvtte3bt9OtI5mg7dWrcPPmyqKiotjY2B49eogxOuAGWa7x5JPrvvnmm3379tnt9mvXhO55Gzt2K2kRn3++ISUlpVu3br/5zRwilBUryt58880RI0Y88cQT58+fx7Vk71y7dm3Tpk1FRUVvvfVWXFzcq6++unbt2iVLljz99NNRUVFz585dv349xf0FLS0tdXV1s2fPLigoyMjImDlz5ldffTVr1qw777xzwIABffv2/eijjyRYomtubt6/f//ChQvXrVu3dOnS6dOnz5w5U6vVLlmy5Isvvti/f7/YW++amppKS0tXr1791ltv9e/ff8qUKcXFxUaj8ZlnnomOjv7b3/5WVlZGtooFXcT169fNZnNhYeHnn39eUFCQm5s7Y8aMwYMHFxUVLV26dO/evbTqyE1ATJhQUllZybIsmQOurq6mPjpITa3s23fNxo3b+vf/1FUrc+cWHT9+nMpPUXNz87lz58hXc+eddyoUir/+9a8nT55cvnz5jBkzhg4detttty1dunT16tUUV82oIBentLS0nDx5MikpSalUdu7cOSEh4fnnn+/Xr99tt92mUCgmTpy4YcMGurtFWlpaDh06pNVqe/To0adPn+Tk5ClTpjz11FNqtXrhwoW1tbXS6P+nn35au3Ztv379evToERkZeffdd0+dOjUzM3Pr1q1UNmL6paamZty4cT169CCH/ZVXXrn77ruVSmX37t3/9Kc/7dy5U/g29mvXrv31r38lvYbo6OgRI0ZkZ2dnZmZ+8cUXAoV1c0Va+w4ffbS5rKxs9OjRXbt2HTt27Pnz56m8P4HM7kdGmnbt+vcPP/wwZ86crKys559fQpzy2mtrMzMzrVYrlZWs5ubmZcuWpaSkdO/evU+fPl9//fW1a9fWr18/cODA7t27R0dHv/jii4cOHZLbJn25OAUArl+/fvTo0cmTJz/66KOLFy8+efJkeXn5E088MWXKlI0bN1JMPtcSDx48+P7770+aNOnPf/7znDlz5s6du337drobLv1y9erVbdu26fX64cOHT548uaCgwGq1Up9raI/m5uaTJ09mZ2enpKQYjcbTp09//fXXycnJL7300qZNm2jN7Fy+fPnvf//72LFj77333meffXbRokUHDx6kIk3SyO+4Y/U335zu1GnZ6NEbKioq58+f37NnT6VSuWDBAro/48Rc3bsvX7Nm67PPPjthwoSnnnrqzjvv6tYtj0xFz5w5c/jw4UeOHKHS1K9cubJgwYLx48dnZmYSOTY2Nm7btu2FF17429/+9sMPP0h2Egl/ZOQUALh+/frFixfPnz/f0NDQ3NzsdDpra2sdDofw0amPEq9cuXLx4sWLFy86HI66urqQfEmNjY0XL16sqam5ePFifX29xJcja25uvnTpUm1tLRHZtWvXqB/2lpaWhoaG2tras2fPXrhw4cqVK7R+Xcn6SGzsZ6++alYqP928+fuioiKNRtOtW7cBAwbQXS4k/OEPFWTya/Tox1566aWMjIxXX/2MYYz33ff3VavWkMspmEwmKt1qMki/cOGCw+EgIziy1cDhcFA8hnSRl1MQJFCuXGkkE/y33lrw8cfF33777ahRo3r27BkdHT1z5kwxVu6am5vz8r5ym6DNz9+9Z88esjlFqVR+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" alt="" />
 
 
 
 
 #include <cstdio>
#include <cstring>
#include <queue>
using namespace std; struct Point{
int x, y;
}s, t;
//骑士行走的方向
int dir[][] = {{, }, {, -}, {-, }, {-, -}, {, }, {-, }, {, -}, {-, -}}; bool inChess(Point a)
{
return a.x >= && a.y >= && a.x < && a.y < ;
} int bfs()
{
if(s.x == t.x && s.y == t.y)
return ;
queue <Point> q;
bool visit[][];
int dis[][];
memset(visit, , sizeof(visit));
q.push(s);
visit[s.x][s.y] = true;
dis[s.x][s.y] = ;
while(!q.empty()){
Point a = q.front();
q.pop();
for(int i = ; i < ; ++i){
Point b;
b.x = a.x + dir[i][];
b.y = a.y + dir[i][];
if(inChess(b) && !visit[b.x][b.y]){
visit[b.x][b.y] = true;
dis[b.x][b.y] = dis[a.x][a.y] + ;
q.push(b);
if(b.x == t.x && b.y == t.y)
return dis[b.x][b.y];
}
}
}
return -;
} int main()
{
char s1[], s2[];
while(~scanf("%s%s", s1, s2)){
s.x = s1[] - 'a';
s.y = s1[] - '';
t.x = s2[] - 'a';
t.y = s2[] - '';
printf("To get from %s to %s takes %d knight moves.\n", s1, s2, bfs());
}
return ;
}

POJ 2243 Knight Moves的更多相关文章

  1. POJ 2243 Knight Moves(BFS)

    POJ 2243 Knight Moves A friend of you is doing research on the Traveling Knight Problem (TKP) where ...

  2. POJ 1915 Knight Moves

    POJ 1915 Knight Moves Knight Moves   Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 29 ...

  3. OpenJudge/Poj 1915 Knight Moves

    1.链接地址: http://bailian.openjudge.cn/practice/1915 http://poj.org/problem?id=1915 2.题目: 总Time Limit: ...

  4. POJ 1915 Knight Moves(BFS+STL)

     Knight Moves Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20913   Accepted: 9702 ...

  5. HDU 2243 Knight Moves

    题目: A friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find th ...

  6. POJ2243 Knight Moves —— A*算法

    题目链接:http://poj.org/problem?id=2243 Knight Moves Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  7. 【POJ 2243】Knight Moves

    题 Description A friend of you is doing research on the Traveling Knight Problem (TKP) where you are ...

  8. POJ Knight Moves 2243 x

    Knight Moves Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13974   Accepted: 7797 Des ...

  9. POJ---2243 Knight Moves 使用A*算法的广度优先搜索

    题目链接:http://poj.org/problem?id=2243 启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标.这样可以省 ...

随机推荐

  1. EF当实体模型与数据库的架构不同时要删除数据库时的报错问题

    当使用的EF的时候,我们都知道EF当实体模型与数据库的架构不同时要删除数据库,这是会把错: 无法创建与 'master' 数据库之间的连接,这是因为已打开原始数据库连接,并且已从连接字符串中删除凭据. ...

  2. Elasticsearch从0.90到1.2的不兼容变化-系统和设置

      本文为官方文档的翻译加个人理解.作者翻译时,elasticsearch(下面简称es)的版本为1.2.1.   1.系统级别及设置方面 1.1 es启动时,默认是作为一个前台程序启动.如果你想让e ...

  3. POJ - 1741 Tree

    DescriptionGive a tree with n vertices,each edge has a length(positive integer less than 1001).Defin ...

  4. 1206: [HNOI2005]虚拟内存 - BZOJ

    Description 操作系统中一种重要的存储管理技术就是虚拟内存技术.操作系统中允许进程同时运行,也就是并行.每个进程都有其相对独立的数据块(进程运行的过程中将对其进行读写操作).理想的情况下,这 ...

  5. WAF SSI

    http://www.2cto.com/Article/201405/299154.html

  6. POJ3207+tarjan+2-sat

    /* 2-sat 题意:给定一个圆,圆上一些点.两点一线.现给出一些线,这些线可以在圆内连起来,也可以在圆外. 问有没有可能所有的线画完 且 不出现相交. 思路:把线画在圆内或圆外 看成一个组合.其它 ...

  7. linux 模拟延时和丢包

    这是 RHCA 中的一个 BDP 的测试,这也是公司很常用的一种延时和丢包的模拟,现在分享给大家. 我们做的应用软件,还有测试 TCP/UDP  对比,测试 BDP 对 TCP/IP 的影响时,我们都 ...

  8. Oracle导入(imp )与导出(exp )

    导出exp username/password@orcl file=db.dmp 导入imp username/password@orcl file=h:\db.dmp  full=y 备注:在导入之 ...

  9. javaweb学习总结(四十七)——监听器(Listener)在开发中的应用

    监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...

  10. Servlet 下载文件

    这几天有点懒散,还好没有忘记看书,上周去了国家图书馆翻阅了一些和Java相关的书籍,其实这些书都是自己以前看过或者听过,按理来说,不应该看自己已经看过的书籍,应该找一些最新的书籍去看,但是每次走到书架 ...