0
我已經給出了以下練習:有一個未加權的,定向的,弱連接的圖,其中有n個節點(n < 1 000 000)。我們想要遍歷整個圖,從最少的節點開始。問題是:我從哪個節點開始遍歷?我無法在這個特定主題上找到任何內容。不過,我設法拿出一個算法,但它不是足夠有效的:來自最少節點數的弱連接圖遍歷
- 我該圖存儲在鄰接表(n可以是太高了一個二維矩陣)
- 我開始BFS從每個節點i,並將其存儲在
x[i][...]
(x = List<List<int>>
) - 達到節點我檢查我是否有
x[i].Count == n
- 檢查是否有
(x[i] union x[j]).Count == n
- 我檢查是否任何
(x[i] union x[j] union x[k]).Count == n
...所以我做所有可能的2,3,4 ... x的子集合,並檢查其計數是否爲n。
它工作正常,如果n不是太高,但我會需要一個更有效的算法更大的n。
任何幫助表示讚賞(你會讓我能夠再次入睡)! :)