淺談傳遞閉包問題
本篇隨筆簡單講解一下算法競賽中的“傳遞閉包問題”。
傳遞閉包問題的概念
簡單地來講,傳遞閉包問題就是一類具有傳遞性的問題。
放一波標准定義:
在交際網絡中,給定若干個元素和若干對二元關系,且這些關系具有傳遞性,通過這些傳遞性推導出盡量多的元素之間的關系的問題叫做傳遞閉包。
也就是說,在一個元素集里,對你說一堆:某兩個元素之間有關系。然后問你這些元素中一共有多少個元素有關系。
傳遞閉包概念的重點就是,這個關系必須是二元的,也就是說,其他的多元關系也一定要可以分解為幾個二元關系的累積。
傳遞閉包問題的轉化和解決
可以將傳遞閉包問題轉化為圖論問題。
把元素變成一個點,有關系就連一條邊。
最后用Floyd算法解決兩點之間的聯通關系。(任意兩點)
即可。
我承認,這篇隨筆只是簡單介紹了下傳遞閉包的概念,轉化和解決簡直就是簡單得不得了。
(好沒有營養的隨筆)
(我絕壁沒有水博客)