CF229B Planets
用 set 预处理每个时间,哪些节点有人。再 dijkstra 进行即可。
while(book[u].count(t)) t++;
HRBUST 1339 Touring
有两个人分别从 A 和 B 出发去 C,经过相同的边只花一个人的钱,求最少花的钱。
用 dijkstra 预处理 A、B 和 C 的单源最短路径,然后枚举两人汇合的点即可。
Bear and Clique Distances CodeChef
有一张等权完全图,再加上几条边,求最短路。
按常规来建完全图会挂,因为完全图权值一样,不如建立一个中转点,所有点有连向中转点的有向边,无花费,中转点有连向所有点的有向边,花费为权值。然后再原图上加边,最后 dijkstra 即可。