二分圖的概念:二分圖又稱作二部圖,是圖論中的一種特殊模型。 設G=(V,E)是一個無向圖,如果頂點V可分割為兩個互不相交的子集(A,B),并且圖中的每條邊(i,j)所關聯的兩個頂點i和j分别屬于這兩個不同的頂點集(i in A,j in B),則稱圖G為一個二分圖。
比對:在圖論中,一個比對是一個邊的集合,其中任意兩條邊都沒有公共頂點。
最大比對:一個圖所有比對中,所含比對邊數最多的比對,稱為這個圖的最大比對。
交替路:從一個未比對點出發,依次經過非比對邊、比對邊、非比對邊...形成的路徑叫交替路。
增廣路:從一個未比對點出發,走交替路,如果途徑另一個未比對點,則這條交替路稱為增廣路。
增廣路有個重要特點就是:未比對邊數比比對邊數多一,這樣就可以讓未比對邊和比對邊身份交換使得比對邊數加一,是以一直尋找增廣路來增加比對數,直到找不到增光路為止。
代碼實作(Dfs):