傳送門
ps: 今天開始我要換題解布局了,不再有原題內容,不再有評測記錄,而是加入了「一句話題意(summarization)」和「附言(more)」。附言是用來寫一些感想和從這道題獲得的經驗之類的。給定乙個無向完全圖,求它的最大半尤拉子圖。
首先我們要明白乙個事,乙個點數為 \(n\) 的無向完全圖中,每乙個點都會有 \(n - 1\) 條邊。而這個無向完全圖的總邊數就是 \(\dfrac\)。
分情況討論:
如果這個無向完全圖的點數 \(n\) 滿足\(n \nmid 2\),那麼每乙個點就會向外連 \(n - 1\) 條邊。我們都知道,奇數-1會得到偶數,因此這張圖中每乙個點都是偶點。整張圖就是乙個尤拉圖!
因此若一張無向完全圖的點數 \(n\) 滿足 \(n \nmid 2\),它的最大半尤拉子圖就是它自己。邊數就是整張圖的邊數,\(\dfrac\)。
如果這個無向完全圖的點數 \(n\) 滿足 \(n \mid 2\),同理會得到每個點都是奇點。
似乎處理最大半尤拉子圖有點棘手,不如我們逆向思維,考慮最少刪多少條邊能讓這張圖變成一張半尤拉圖
眾所周知,刪一條邊能讓兩個點的度減1.
把一張圖變成半尤拉圖,那麼我們最多只能剩下兩個奇點。如果剩下的 \(n - 2\) 個奇點能夠通過刪一條邊,減去乙個度變成偶點,那麼就變成半尤拉圖了!
然而你會發現,\(n\) 是乙個偶數,\(n - 2\) 也是偶數!!
而且完全圖,哪一條邊都是應有盡有的!!
那麼!重點來了,我們只需要刪除 \(\dfrac\) 條沒有公共頂點的邊,就可以達到只剩下兩個奇點的目的了!
可以這麼理解:將剩下的 \(n - 2\) 個奇點兩兩配對,比如這幾個奇點編號分別是 \(1, 2, 3, 4, 5, 6\):
隨便兩兩配對(隨機怎麼配都行):
1 4
2 63 5
只需要把每一對中間的邊刪掉(在此例子中就是:\(1 - 4, 2 - 6, 3 - 5\) 這三條邊)刪掉,就可以讓 \(1, 2, 3, 4, 5 ,6\) 的度分別恰好 \(-1\)。原先他們都是奇點,減去1個度自然就變成偶點了!
可能有些小夥伴還是沒太明白。沒有關係,我舉乙個例子:
這是一張 \(n=6\) 的無向完全圖。
首先我們隨便抽兩個幸運之點,作為最後保留的兩個奇點。隨便抽哈,比如 \(1, 4\) 吧。我們會保持這兩個點一直是奇點。
剩下的 \(2, 3, 5 ,6\) 就得乖乖被刪掉乙個度了。
怎麼刪?隨便兩兩配對:
2 6
3 5
刪掉 \(2-6\),\(3-5\) 這兩條邊,便可讓 \(2, 3, 5, 6\) 這四個點的度全部乖乖 \(-1\)。
那麼最後,\(1, 4\) 就是這張圖的唯二奇點,整張圖便會變為半尤拉圖。
最後的最後,我們就可以得到式子了:
設 \(f(n)\) 為答案,則:
\(f(n) = \begin\dfrac&x \nmid 2\\\dfrac&x\mid2\end\)
/*
* @author: crab-in-the-northeast
* @date: 2020-10-20 11:16:31
* @last modified by: crab-in-the-northeast
* @last modified time: 2020-10-20 11:19:29
*/#include #include typedef long long ll;
int main()
return 0;
}
本篇題解花費1個小時。如果你看懂了,或者覺得我寫的題解很不錯,請給個大拇指把!球球啦,嗷嗚~
然後,感興趣的讀者可以思考以下幾個問題:
更有興趣的讀者也可以自己想一些更有趣的問題哦。
那麼本篇題解就至此結束啦拜拜~~~~
685 冗餘連線 II
在本問題中,有根樹指滿足以下條件的有向圖。該樹只有乙個根節點,所有其他節點都是該根節點的後繼。每乙個節點只有乙個父節點,除了根節點沒有父節點。輸入乙個有向圖,該圖由乙個有著n個節點 節點值不重複1,2,n 的樹及一條附加的邊構成。附加的邊的兩個頂點包含在1到n中間,這條附加的邊不屬於樹中已存在的邊。...
6 8 5 聯絡人實體
聯絡人實體與客戶實體是雙向的多對多關係,與頭像實體是雙向的一對一實體,與 實體是單向的一對多的關係。它的 如下所示。contacteo實體 entity table name tb contact public class contacteo implements serializable priv...
Leetcode 685 冗餘連線 II C
在本問題中,有根樹指滿足以下條件的有向圖。該樹只有乙個根節點,所有其他節點都是該根節點的後繼。每乙個節點只有乙個父節點,除了根節點沒有父節點。輸入乙個有向圖,該圖由乙個有著n個節點 節點值不重複1,2,n 的樹及一條附加的邊構成。附加的邊的兩個頂點包含在1到n中間,這條附加的邊不屬於樹中已存在的邊。...