1. 程式人生 > >noip2014-尋找道路

noip2014-尋找道路

題目很清楚,要滿足2個要求:

1.路徑上的所有點的出邊所指向的點都直接或間接與終點連通。

2.最短

條件2很好做,spfa或者bfs反正怎麼搞都行。

於是考慮條件1

我們當然想知道每個點能否經過。對於不能經過的點,無非是2種:

1.自身到不了終點的 2.它的出邊指向的點有到不了終點的。

首先找滿足條件1的,然後把所有指向它們的點都標記為0就成

對於條件1,我們建反邊……從t開始搜尋,所有能到達的點就是1不然就是0

大概就是這樣……

注意!!!環

這裡必須要建反邊,不能正向搜尋(如果v[i]到的了的話,x也能到),因為有環!!!一個結點是可以經過多次的!!!

而這種正向搜尋對一個有向圖而言只有存在拓撲序時才能成立。

emmmm差不多咯