#P1468. 2024.9.27-秋招-第2题-最好的通勤体验
-
ID: 132
Type: Default
1000ms
256MiB
Tried: 698
Accepted: 79
Difficulty: 7
Uploaded By:
TaZi
Tags>BFS
2024.9.27-秋招-第2题-最好的通勤体验
题目内容
小塔是一名环保爱好者,每天选择乘坐公交车上班。不同线路上的公交车会在规定的路线上单向循环行驶,例如708路公交的路线为[2,5,8],那么公交车会按照2−>5−>8−>2−>5−>8−>....的路线循环行驶,其中路线中的数字为公交站台编号。
小塔每天上班会从离他家里最近的公交站台上车,然后在他最喜欢的早餐店所在的站台下车买好早餐然后再上车,最后在离公司最近的公交站台下车,允许不限次数地在中途下车换乘其他路线的公交。
现在分别给定小塔上车、早餐店、下车的公交站台编号,请帮他选择最佳的乘车路线,使乘坐的公交车总数最少(如果在同1条公交路线中下车再上车,仍然视为乘坐的同一辆车),从而获得最好的通勤体验。
输入描述
1.第一行有3个数字,分别表示上车的公交站台编号、早餐店的公交站台编号、下车公交站台编号,依次用空格隔开。
2.第二行表示公交路线数量,后续的每一行中第1个数字代表该路线的总站台数,剩余的数字表示每条公交路线经过的站点编号,所有数字用空格隔开。
3.公交路线数量范围在[1,500]。
4.公交站台的编号范围在[1,1000000]。
5.每条公交路线经过的站台数量范围在[2,1500],路线中的站台编号按升序顺序排序,且每条路线中不包含重复的站台。
6.起点站台、购买早餐的站点、终点站台不重复。
输出描述
乘坐的公交路线总数,如果没有匹配的路线请返回−1
样例1
输入
1 3 5
4
3 1 2 6
3 2 3 7
3 5 6 8
2 5 7
输出
3
说明
先乘坐第1条公交路线的车,在第2个站点下车转第2条路线的公交车,然后再乘坐第2条公交路线的车在站点3下车买早餐,然后重新乘坐第2条公交路线达到站点7下车转第4条公交路线,最后达到站点5,经过的公交路线为1−>2−>4,所以结果为3。虽然乘坐第1条公交路线和第3条公交路线也能达到站点5,但是该路线没法购买早餐。
样例2
输入
1 3 4
2
3 1 2 4
3 3 5 6
输出
-1
说明
小王只能乘坐第1条公交路线上车,但是无法通过该路线的站台换乘到第2条公交路线购买早餐,没有匹配的路线,返回−1。
样例3
输入
4 19 28
5
5 3 4 7 8 10
6 10 12 16 19 27 28
4 5 7 11 17
4 17 19 22 23
3 23 27 28
输出
2
说明
小王可以选择1−>2的公交路线,乘坐的公交车总数为2,也可以选择1−>3−>4−>5的公交路线,乘坐的公交车总数为4,因此最佳的乘车路线是1−>2,结果为2。
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 32ms
- Powered by Hydro v4.14.1 Community