原題描述:在一個未來的空中都市中,有很多個小島(城區)。現在要求在這些島之間架一些橋樑(橋是架在兩個島中間的)。要求:首先,如果A與B中間有橋,B與C之間有橋,則A與C之間就不能再架橋了,即對於城市中的任意三個島,不能在其中兩兩都架上橋。在這樣的前提下,要求架的橋數最多,並計算其中的一個可行方案。
此題在網上可以搜索到答案,橋數最多時爲二分圖。但沒有給出有力的證明。以下簡要證明之。
引理:n個頂點的圖G=(V,E),假設其頂點的最大度數爲m,則邊數最多爲m*(n-m)
證明:
取出最大度數的頂點v0,由於v0的度數爲m,則v0有m個鄰接點,設爲X={u1,u2,...,um},而且圖G沒有長度爲3的環,則這m個鄰接點互不連接。
將G中的頂點V分成兩個部分,X和 V-X,考慮V-S中的所有頂點,任取一個點v1,由於v1的度數不大於m,則將v1的邊全部移動到X上來,這個操作是可行的,因爲X有m個頂點,而v1最多隻有m條邊,此時v1必定和v0不相鄰,注意移動之後圖G的邊數和點數都沒有改變。循環處理V-S的所有頂點,如此使用圖G分成了兩個部分X和X-S,即是一個二分圖,二分圖邊數最多時爲完全二分圖,即邊數最多爲m*(n-m)
當m=floor(n/2)時,m*(n-m)最大,所以對於n個頂點的圖G,n爲偶數時邊數最多爲(n/2)*(n/2),n爲奇數時邊數最多爲(n-1)/2* (n+1)/2