問題描述
在有向圖g 中,每條邊的長度均為1 ,現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件:
1 .路徑上的所有點的出邊所指向的點都直接或間接與終點連通。
2 .在滿足條件1 的情況下使路徑最短。
注意:圖g 中可能存在重邊和自環,題目保證終點沒有出邊。
請你輸出符合條件的路徑的長度。
輸入
第一行有兩個用乙個空格隔開的整數n 和m ,表示圖有n 個點和m 條邊。
接下來的m 行每行2 個整數x 、y ,之間用乙個空格隔開,表示有一條邊從點x 指向點y 。
最後一行有兩個用乙個空格隔開的整數s 、t ,表示起點為s ,終點為t 。
輸出
輸出只有一行,包含乙個整數,表示滿足題目᧿述的最短路徑的長度。如果這樣的路徑不存在,輸出- 1 。
樣例輸入1
3 2
1 2
2 1
1 3
樣例輸入2
6 6
1 2
1 3
2 6
2 5
4 5
3 4
1 5
樣例輸出1
-1樣例輸出2
3演算法討論
這道題乍一看就是道裸spfa,實則不然,他有路徑上的所有點的出邊所指向的點都直接或間接與終點連通這一條件,所以我們需要進行乙個預處理:先從終點開始,將所有直接或間接連線的點打上標記,再做spfa。做的時候如果當前點的所有連邊上有不能到達終點的點,則此點不能更新。
尋找道路(洛谷 2296)
在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑最短。注意 圖g 中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度。輸入格式...
洛谷P2296 尋找道路
在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑最短。注意 圖g 中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度。輸入格式...
洛谷 P2296 尋找道路
題目描述 在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑最短。注意 圖g 中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度...