1. 程式人生 > 實用技巧 >接上一篇

接上一篇

我真是傻乎乎的

割點割邊強連通分量是T演算法在無向圖和有向圖中的兩個應用啦,而且上一篇我的問題就是建立在無知上的!

下面是強連通分量,的幾行核心程式碼

if( !dfn[v] )//沒標記
    low[u] = min( low[u], low[v] );
else if (!co[v])//標記了,且未出棧
    low[u] = min( low[u], dfn[v] );
//或low[u] = min( low[u], low[v] );

兩個都寫成low(u)=min{low(u),low(v)}是可以的!

還用前天那張手繪圖吧!(我實在不會在電腦上畫圖,覺得特別麻煩,有木有大佬教教我!!!)

這是有向圖

這張圖有兩個強連通分量{12345}{6}

在強中,low5是可以等於1的(low[u]=min(low[u],low[v]);),low5也可以等於3(low[u]=min(low[u],dfn[v]);),不管他等於什麼,只要不等於自己,就可以啦(就能說明他不是一個強連通分量的頭頭)

而在割點中,low5是絕對不能等於1的!!(經過父)


割點割邊強連通分量是T演算法在無向圖和有向圖中的兩個應用。割點割邊,強連通分量有區別,所以程式也會不一樣啦!不過差不多意思是差不多的(病句?),都是深搜,有時間戳,不同的是low的求法和判斷是不是割或強!

好啦,最後附上前天傻乎乎隨筆的連結

https://www.cnblogs.com/xfff/p/13491267.html