简单
最优乘车
传送门
题意:给定 m 个公交车路线,每条路线上又若干个车站,共 n 个车站,求起点到终点的最少换乘次数
做法:暴力建边,读入公交路线时将其中每一个战点与其他站点连边,这就相当于边权为 1 的图,然后求一遍最短路
中等
拯救大兵瑞恩
传送门
题意:给定一个 n * m 的矩阵,起始点是 (1 , 1),目标点是 (n, m),然后给出若干对点的关系(既这两个点要么有墙, 要么有门,编号为 k 的门可以用相同编号的钥匙打开),其他点直接都是联通的,移动一次耗时1,捡起钥匙不耗时,问最短时间。
做法:这题首先建图非常抽象,一个矩阵的点离散化转化成邻接矩阵,如果两点直接联通,边权为 0,有墙的跳过,有门的边权设为门的编号,图建好之后搜索过程只需要看钥匙,将钥匙压缩成一种状态。用双端队列,如果当前点有钥匙,且最短路可以更新,就直接更新存入队头,如果只是能走就放入队尾。
1056

被折叠的 条评论
为什么被折叠?



