5.2.1 定義
• Subgraph,子圖:如果兩個圖 G= (V, E), G′ = (V′, E′),如果 V′ ⊆V, E′ ⊆ E,那我們 說 G′ 是 G 的子圖。
• Induced Subgraph,導出子圖:如果圖G′ 是G的子圖,且對於任兩個頂點u, v ∈V(G′),
(u, v)∈E′ ⇐⇒(u, v)∈E,那我們說G′ 是 G 的導出子圖。
• Spanning Subgraph,生成子圖:如果圖 G′ 是 G 的子圖,V(G) = V(G′),那我們就說 G′ 是 G 的生成子圖。
• Compliment Graph,補圖:圖 G 的補圖 Gc,為滿足 V(Gc) = V(G) 且 e ∈ E(G) ⇐⇒
e ∈/E(Gc) 的圖。
• Path,路徑:圖 G 中的一個頂點的序列 (v1, v2,· · · , vn) 滿足 vi ∈ V(G),(vi, vi+1) ∈ E(G)。v1 稱作路徑的起點,vn 為路徑的終點。
• Simple Path,簡單路徑:點都不重複的路徑。
• Cycle,環:一個起點與終點的路徑。
• Simple Cycle,簡單環:點都不重複的環。
5.2.2 一些特殊的圖
簡單圖
我們把一條邊 (v, v),即邊的兩端連接同一個頂點稱作自環。而如果有兩個邊 e1, e2 同時 連接相同的兩個頂點 (v1, v2)(在有向途中則如果同時有兩個有向邊的起點為 v1,終點為 v2),
我們就稱作重邊。
一個簡單圖即是沒有上述兩種邊的圖。
Question
• 給你一個有 n 個點的度數的序列 deg(v1),deg(v2),· · · ,deg(vn),請判斷是否存在 一個簡單圖使得圖中點的度數序列恰為此序列。(<TIOJ 1210> [圖論之簡單圖測 試],O(nlgn))
連通圖
如果一個圖 G滿足圖中任兩個點 vi, vj 都有一個路徑連接兩點,那我們就說G 是連通圖 (Connected Graph)。
Author: M.S.E 68
2012/11/08 5.2. 子圖與特殊的圖
樹
如果一個無向的簡單圖 G 滿足 G是沒有環的連通圖,那我們就稱 G 為一棵樹(Tree)。
而在有向圖 G 中,如果存在一點 v 使得 deg+(v) = 0,且任何其他點 u 滿足 deg+(u) = 1,
並且從 v 到 u 有且僅有一條簡單有向路徑相連,我們就說 G 是一個以 v 為根的有向樹 (Directed Tree)。
Question
• 請說明以下的定義和樹的定義等價。
1. G 沒有環,但是在 G 加任意一條邊就會形成一個環。
2. G 是連通的,但是如果去掉任意一條邊就會使得 G 不連通。
3. G 中任意兩個頂點能被唯一一條簡單路徑連通。
4. G 是連通的,且 |E|=|V| −1。
• 如果一個圖 G 滿足 |E|=|V|,請問這個圖會有甚麼性質?
1...
2
.
4
.
5 .
3
完全圖
如果無向圖 G 滿足任意兩個頂點都有一條邊相鄰,那我們說 G 是完全圖 (Complete
Graph),有n 個頂點的完全圖是唯一的,記作 Kn。
二分圖
如果無向圖 G 滿足可以將 G 中的頂點分成兩個集合 V1, V2,使得任意 (v1, v2)∈ E(G),
v1, v2 不會在同一個集合 V1 或是 V2 內,我們就說 G是二分圖 (Bipartite graph)。
Question
• 請判斷一個圖 G 是不是二分圖。(<TIOJ 1209> [圖論之二分圖測試],O(|V|))
69 Author: M.S.E
CHAPTER 5. 圖論 建國中學2012年資訊能力競賽培訓講義 - 05
平面圖
如果圖 G 可以畫在平面上使得他的邊僅在端點處相交,我們就說 G 是平面圖 (Planar
Graph)。一個平面圖的邊會把平面區隔成不同的區域稱作面,記作F。平面圖中有著名的歐
拉定理 |V| − |E|+|F|= 2
...
5.2.3 Exercise
• 給你一個圖 G = (V, E),其中 |E| = |V|,找出這個圖中最長的一條簡單路徑。(<IOI 2008> [Island], |V| ≤3000)
• 如果一個圖 G的頂點可以被分成兩個集合 C, I 滿足C 中的任兩點都有邊相鄰,而I 中 的任兩點都沒有邊相鄰,那我們說 G 是一個 Split Graph。給你一個簡單圖 G,請問他 是不是 Split Graph。(<POI XVIII> [Conspiracy], O(|V|+|E|))
• 如果一個有向圖G= (V, E)滿足任兩個點v1, v2,(v1, v2)∈E 或是(v2, v1)∈E 恰有一個 成立,那我們就說這是一個競賽圖 (Tournament Graph)。給你一個競賽圖G,請找出一 個 3-環 (長度為 3 的簡單環) 或是輸出無解。(<CodeForces 117C> [Cycle],|V| ≤3000)
• 證明:任何一個競賽圖 G,一定可以找到一個點 v,滿足對於其他所有的點 u,使得以 下兩點至少有一點成立:
1. (u, v)∈E(G)。(注意競賽圖是有向的)
2. 存在另一個點 w 滿足(u, w),(w, v)∈E(G)。
• 給你一個圖 G= (V, E),其中 |E|=|V|,找出這個圖中最長的一條簡單路徑。
• 給你一個圖 G = (V, E),其中 V = 3k,已知這個圖中有一個子圖為 2k 階完全圖 K2k,請找出這個圖的一個子圖 G′ 滿足 G′ 為 k 階完全圖 Kk。(<POI XVIII> [Party],
|V| ≤3000)
• 證明:如果 G 是一個平面圖,那麼 |E| ≤3|V| −6。
• 給你一個樹 T = (V, E) 和平面上的 |V| 個點 V′,請用這些點構造一個平面圖 G′ = (V′, E′) 滿足 T 和 G′ 同構。即用平面上的這些點畫原本所給的樹 T。(<CodeForces 196C> [Paint Tree], |V| ≤105)
Author: M.S.E 70