HUD 1372 Knight Moves DFS()
来源:互联网 发布:js block none 编辑:程序博客网 时间:2024/04/30 13:21
Knight Moves
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3929 Accepted Submission(s): 2448
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.
e2 e4a1 b2b2 c3a1 h8a1 h7h8 a1b1 c3f6 f6
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.
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
const int dir[8][2]= {1,2,1,-2,-1,2,-1,-2,2,1,2,-1,-2,1,-2,-1};
const int N = 10;
char ch1, ch2, ch3, ch4;
int x1, y1, x2, y2;
int used[N][N];
void DFS(int x, int y, int t)
{
if(x>7||x<0||y>7||y<0||used[x][y]<=t)
return;
used[x][y]=t;
for (int i = 0; i < 8; i++)
{
int tx=x+dir[i][0];
int ty=y+dir[i][1];
DFS(tx,ty,t+1);
}
}
int main()
{
while (scanf("%c%c %c%c", &ch1, &ch2, &ch3, &ch4) != EOF)
{
getchar();
x1 = ch1 - 'a', y1 = ch2 - '1';
x2 = ch3 - 'a', y2 = ch4 - '1';
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
used[i][j] = 64;
DFS(x1, y1, 0);
printf("To get from %c%c to %c%c takes %d knight moves.\n", ch1, ch2, ch3, ch4, used[x2][y2]);
}
}
- HUD 1372 Knight Moves DFS()
- hud 1372 Knight Moves【bfs】
- NUC1333 Knight Moves【DFS】
- hdu-1372-Knight Moves(bfs和dfs)
- 1372 knight moves BFS
- HDU 1372 knight moves
- HDU 1372 Knight Moves
- HDU-1372-Knight Moves
- hdu 1372 Knight Moves
- hdoj 1372 Knight Moves
- HDU 1372 Knight Moves
- hdu 1372 Knight Moves
- Hdu 1372 Knight Moves
- HDU 1372 Knight Moves
- poj 1372 Knight Moves
- HDU 1372 Knight Moves
- HDU-1372Knight Moves
- HDU-1372-Knight Moves
- poj 3368 RMQ 模版应用
- 数组指针与指针数组
- 西安电子Problem 1002 - another a+b
- keil4程序从JLINK8下载后,不能运行,需要重启的原因
- DMC信道容量迭代算法(Matalab实现)
- HUD 1372 Knight Moves DFS()
- Srting 字符串去掉重复的数据
- 开源框架Pushlet入门,使用Pushlet将消息从服务器端推送到客户端
- 关于MySQL里面的乱码问题
- squid介绍及其简单配置
- SQL语句多表inner join用法
- DBI接口与DPI接口与DSI接口
- VLC源代码分析(一)
- Andorid简单应用理财工具-初篇