POJ 2243 Knight Moves
来源:互联网 发布:淘宝清洗后钱该怎么办 编辑:程序博客网 时间:2024/06/11 11:03
BFS模板题。
#include <iostream>#include <cstdio>#include <queue>#include <string>#include <algorithm>#include <cstdlib>#include <cstring>using namespace std;struct P{int x, y, steps;};bool map[10][10];int fx[8][2] = {1, 2, -1, 2, 2, 1, -2, 1, 2, -1, -2, -1, 1, -2, -1, -2};queue<P> q;int main(){int n;P start, end;char s1[5], s2[5];while (scanf("%s%s", s1, s2) != EOF){while (!q.empty())q.pop();memset(map, 0, sizeof(map));start.x = s1[0] - 'a';start.y = s1[1] - '1';end.x = s2[0] - 'a';end.y = s2[1] - '1';start.steps = 0;q.push(start);map[start.x][start.y] = 0;while (!q.empty()){P cur = q.front();q.pop();if (cur.x == end.x && cur.y == end.y){printf("To get from %s to %s takes %d knight moves.\n", s1, s2, cur.steps);break;}for (int i = 0; i < 8; i ++){P curr;curr.x = cur.x + fx[i][0];curr.y = cur.y + fx[i][1];curr.steps = cur.steps + 1;if (curr.x >= 8 || curr.y >= 8 || curr.x < 0 || curr.y < 0|| map[curr.x][curr.y] == true)continue;map[curr.x][curr.y] = true;q.push(curr);}}}}
0 0
- poj 2243 Knight Moves
- POJ 2243 Knight Moves
- poj 2243 Knight Moves
- POJ 2243 Knight Moves
- poj 2243 Knight Moves
- poj 2243 Knight Moves
- poj 2243 Knight Moves
- POJ 2243 Knight Moves
- POJ-2243-Knight Moves
- poj 2243 Knight Moves
- poj 2243:Knight Moves
- POJ 2243 Knight Moves
- poj-- 2243 Knight Moves
- POJ 2243 Knight Moves
- poj 2243 Knight Moves
- POJ 2243 Knight Moves
- POJ 2243 - Knight Moves
- POJ 2243 Knight Moves
- IOS开发记录(一)
- 渐变动画/按钮/图片拉伸/copy/KVC/KVO
- POJ 1426 Find The Multiple
- 徒步一千里 (1930) (長津惠山)
- golang---利用反射机制对结构体进行循环赋值
- POJ 2243 Knight Moves
- Sqoop_1. 基本架构及数据操作 -- 待完善
- POJ 3620 Avoid The Lakes
- 【Leetcode】Search a 2D Matrix
- 一些笔记
- 果然还是不够努力是吗?
- 【心灵感悟】—看【人生就是一次列车的旅行】PPT之感
- 八、深拷贝和浅拷贝
- 体力耗费