簡體   English   中英

圖論:它會停止嗎?

[英]Graph Theory : Will it stop or not?

我不知道如何開始這個問題:

一個圖形有n個頂點和m個邊,兩個邊之間的連接不能超過一個邊,Rahul開始玩游戲:他按照以下方式更改邊-

  • 他選擇一個頂點,然后從該頂點向不存在該邊緣的所有其他頂點添加一條邊。
  • 同時從該頂點刪除所有先前存在的邊。

僅當它們在每兩個頂點之間存在直接邊緣時,該游戲才會停止。 您需要確定是否有可能完成此游戲,或者無論他采取什么行動,這種情況是否永遠不會發生。

輸入:將給出圖形的初始狀態。 輸出:“是”或“否”

有人可以提示如何開始嗎?

1)動作順序無關緊要(因為您可以將任意兩個后續動作交換為相同的結果);
2)具有相同頂點的兩個后續更改的效果為零;
3)您可以進入最終狀態iff。 您可以不超過一次地更改任何頂點;
4)任何兩個連接的頂點都必須同時更改或不變,其中兩個未完全連接的頂點都應更改。

在圖中選取一個連接的組件。 那里的頂點應該全部更改或全部保持不變。 如果組件未完全連接,則無法完成游戲。 如果至少有三個連接的組件,則不可能完成游戲。 如果完全有兩個完全連接的組件,則應更改其中一個恰好所有的頂點。

答:僅當圖形已經完全連接或由兩個完全連接的組件組成時,游戲才能結束。 (很容易看出,當圖形由兩個完全連接的組件組成時,更改頂點會有效地將其從一個組件移動到另一個組件。)

檢查答案的算法:假設我們給定了多個頂點n,然后給出了形式為(a,b)的邊列表,其中ab是來自[1,n]的頂點數。 vertices為記錄數組(num_edges, connected, sample) ,並以(0,k,k)初始化( k為頂點數)。 然后對於每個邊(A,B):

  1. 將A和B的num_edges增加1 ;
  2. 如果A.sample等於B.sample ,則轉到下B.sample邊;
  3. 交換A.connectedB.connected ,從開始A.connected頂點組sample ,以A.sample並按照connected直到到達B; 到達下一個優勢。

最后,檢查從1開始並隨后connected所有頂點的num_edges等於(其數字-1),並且所有其余頂點的循環相似。 時間應為O(max(n log(n),m)),內存為O(n)。

具有n個頂點的已求解圖將是具有½n(n-1)個邊的完整圖k n

翻轉頂點的狀態將意味着頂點與圖形斷開連接,並且存在兩個斷開連接的完整子圖K 1K (n-1) ,其中分別包含0½(n-1)(n-2)邊緣。

翻轉其他頂點的狀態會將每個頂點與包含它的完整子圖斷開連接,並將其連接到另一個完整子圖的所有頂點。 因此,通常,如果存在x個具有翻轉狀態的頂點,則將存在兩個完整的子圖K xK (nx) ,其邊緣為½x(x-1)½(nx)(n-1-x)總共有m =½n(n-1)-nx + x(x-1)個邊。

如果我們知道mn,那么我們可以求解二次方程,以找到解決問題所需的移動次數x

x = ( n - SQRT( 4m + 2n - n² ) ) / 2

如果x為非整數,則難題無法解決。

如果x是整數,則難題可能恰好可以在x步中解決,但是還需要進行額外的檢查,以查看是否存在兩個斷開的完整子圖K xK (nx)

算法

  • 計算x ; 如果它不是整數,則該圖不可解。 [復雜度: O(1) ]
  • 選擇一個隨機頂點:
    • 其度數應為(x-1)(nx-1) 如果不是,則該圖不可解。
    • 生成所有相鄰頂點的列表。 [復雜度: O(n) ]
    • 從該頂點執行深度優先(或廣度優先)搜索。 [復雜度: O(n+m) ]
    • 如果訪問的邊的數量是½x(x-1)½(nx)(n-1-x) (對應於原始頂點的度),並且沒有訪問與原始頂點不相鄰的頂點,則子-graph是完整的,並且您知道該圖是可解的; 如果任一條件都不成立,則該圖不可解。
  • 可以肯定的是,您可以對其他子圖執行相同的操作,但這是不必要的。

例子

邊為(1,2)(3,4)n=4,m=2的圖是可解的,因為x =(4-SQRT(0))/ 2 = 2 (是整數),並且有兩個K 2斷開的子圖。

(1,2)(2,3)(3,4) n=4,m=3的圖具有x =(4-SQRT(4))/ 2 = 1 (是整數)當只有兩個斷開的K 1K 3子圖時,它只是一個不連通的不完整圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM