推 fenzhang: DFS生成樹沒有cross edge。 12/30 02:44
→ fenzhang: tree edge一定有某端是另一端父親。 12/30 02:44
→ scwg: 樓上在 undirected graph 裡是對的, directed graph DPS 12/30 06:28
→ scwg: 是可能有 cross edge 的. 原 po: 你的作法是什麼? 複雜度是? 12/30 06:29
→ scwg: 用 color 判斷有點奇怪, 因為 DFS 跑完每個點應該都是黑色.. 12/30 06:30
題目應該是問有向圖,沒有限定是DFS SPANNING TREE
我的想法是:
在u--->v的情況下 如果
u是gray v是white :tree edge
gray gray :back
gray black :若d[u]<d[v]則是forward 反之則是cross
※ 編輯: jb679123 (140.123.103.109), 12/30/2014 09:45:27
→ scwg: 這個判斷應該是對的, 可惜 u.color == gray 只有 DFS 到一半 12/30 13:40
→ scwg: 的時候會成立. 想想看 u.d 和 u.f 存了什麼? 怎麼用他們重建 12/30 13:41
→ scwg: 「u.color == gray」成立的「時間」? 12/30 13:41
恩恩 這也是目前卡住的地方ORZ
※ 編輯: jb679123 (140.123.103.109), 12/30/2014 15:15:53
→ aaaaajack: 現在回好像有點遲XD 總之需要考慮各種edge的特性 01/05 23:01
→ aaaaajack: forward跟back edge滿足一個是另一個的ancestor 01/05 23:02
→ aaaaajack: d跟f可以幫助你判斷這件事 01/05 23:02
→ aaaaajack: 然後pi幫助你判斷他是不是tree edge 01/05 23:02
感謝a大的補充XDD
※ 編輯: jb679123 (140.123.214.127), 01/10/2015 16:03:42