洛谷 P1346電車

2021-10-14 07:41:58 字數 924 閱讀 9387

在乙個神奇的小鎮上有著乙個特別的電車網路,它由一些路口和軌道組成,每個路口都連線著若干個軌道,每個軌道都通向乙個路口(不排除有的觀光軌道轉一圈後返回路口的可能)。在每個路口,都有乙個開關決定著出去的軌道,每個開關都有乙個預設的狀態,每輛電車行駛到路口之後,只能從開關所指向的軌道出去,如果電車司機想走另乙個軌道,他就必須下車切換開關的狀態。

為了行駛向目標地點,電車司機不得不經常下車來切換開關,於是,他們想請你寫乙個程式,計算一輛從路口 a 到路口 b 最少需要下車切換幾次開關。

第一行有 33 個整數 n,a,b(2≤n≤100,1≤a,b≤n),分別表示路口的數量,和電車的起點,終點。

接下來有 n 行,每行的開頭有乙個數字 ki

​ 0≤ki ≤n−1),表示這個路口與 ki條軌道相連,接下來有 ki個數字表示每條軌道所通向的路口,開關預設指向第乙個數字表示的軌道。

輸出檔案只有乙個數字,表示從 aa 到 bb 所需的最少的切換開關次數,若無法從 aa 前往 bb,輸出 -1−1。

輸入

321

2232

3121

2

輸出
0
建好邊,用floyd求最短路。

#include

#include

#include

using

namespace std;

int a[

110]

[110

],st,ed,n;

void

input()

a[i]

[i]=0;

}}return;}

void

floyd()

//求多源最短路 }}

return;}

intmain()

洛谷 P1346 電車

稍微包裝過一下的最短路。如果初始狀態就是到達那個路口,就把權值搞為0,如果不是就搞為1 然後跑最短路,我用的是spfa,不過100的資料怎麼跑都行吧。include includeusing namespace std const int maxn 100 int n,a,b,k,map maxn ...

洛谷 P1346 電車

題目描述 在乙個神奇的小鎮上有著乙個特別的電車網路,它由一些路口和軌道組成,每個路口都連線著若干個軌道,每個軌道都通向乙個路口 不排除有的觀光軌道轉一圈後返回路口的可能 在每個路口,都有乙個開關決定著出去的軌道,每個開關都有乙個預設的狀態,每輛電車行駛到路口之後,只能從開關所指向的軌道出去,如果電車...

洛谷P1346 電車

在乙個神奇的小鎮上有著乙個特別的電車網路,它由一些路口和軌道組成,每個路口都連線著若干個軌道,每個軌道都通向乙個路口 不排除有的觀光軌道轉一圈後返回路口的可能 在每個路口,都有乙個開關決定著出去的軌道,每個開關都有乙個預設的狀態,每輛電車行駛到路口之後,只能從開關所指向的軌道出去,如果電車司機想走另...