每日一题之hiho1308 骑士问题 (bfs)

博客探讨了在棋盘上解决骑士问题的最小行动步数。通过使用宽度优先搜索(BFS)策略,计算每个骑士到达每个位置的最短步数,并枚举棋盘上的所有位置,求得三个棋子步数之和的最小值。文章提供了样例输入和输出,展示算法的实际应用。
摘要由CSDN通过智能技术生成

输入
第1行:1个正整数t,表示数据组数,2≤t≤10。

第2…t+1行:用空格隔开的3个坐标, 每个坐标由2个字符AB组成,A为’A’-‘H’的大写字母,B为’1’~'8’的数字,表示3个棋子的初始位置。

输出
第1…t行:每行1个数字,第i行表示第i组数据中3个棋子移动到同一格的最小行动步数。

样例输入
2
A1 A1 A1
B2 D3 F4
样例输出
0
2

思路:

可以bfs每个骑士走到每个位置的最小步数,然后枚举棋盘的每个位置,算每个骑士步数的加和。取最小的。

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5+7;

int dir[8][2] = {
   {
   2,1},{
   1,2},{
   -1,2},{
   -2,1},{
   -2,-1},{
   -1,-2},{
   1,-2},{
   2,-1}};

map<char,int>mp;

bool vis[10][10];

int step[3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值