接上一篇
阿新 • • 發佈:2020-08-14
我真是傻乎乎的
求割點割邊,強連通分量是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