BFS最短路

简单

最优乘车

传送门
题意:给定 m 个公交车路线,每条路线上又若干个车站,共 n 个车站,求起点到终点的最少换乘次数
做法:暴力建边,读入公交路线时将其中每一个战点与其他站点连边,这就相当于边权为 1 的图,然后求一遍最短路

中等

拯救大兵瑞恩

传送门
题意:给定一个 n * m 的矩阵,起始点是 (1 , 1),目标点是 (n, m),然后给出若干对点的关系(既这两个点要么有墙, 要么有门,编号为 k 的门可以用相同编号的钥匙打开),其他点直接都是联通的,移动一次耗时1,捡起钥匙不耗时,问最短时间。
做法:这题首先建图非常抽象,一个矩阵的点离散化转化成邻接矩阵,如果两点直接联通,边权为 0,有墙的跳过,有门的边权设为门的编号,图建好之后搜索过程只需要看钥匙,将钥匙压缩成一种状态。用双端队列,如果当前点有钥匙,且最短路可以更新,就直接更新存入队头,如果只是能走就放入队尾。

较难

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值