SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
最短経路問題 & 最小全域木
Report
HCPC: 北海道大学競技プログラミングサークル
Follow
HCPC: 北海道大学競技プログラミングサークル
Jun. 1, 2016
•
0 likes
•
3,982 views
1
of
233
最短経路問題 & 最小全域木
Jun. 1, 2016
•
0 likes
•
3,982 views
Download Now
Download to read offline
Report
Software
最短経路問題と最小全域木問題の説明とそのためのアルゴリズムの解説
HCPC: 北海道大学競技プログラミングサークル
Follow
HCPC: 北海道大学競技プログラミングサークル
Recommended
第21回アルゴリズム勉強会
Yuuki Ono
4.6K views
•
82 slides
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
12.5K views
•
86 slides
Union find(素集合データ構造)
AtCoder Inc.
165.2K views
•
18 slides
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
91.6K views
•
80 slides
強化学習3章
hiroki yamaoka
213 views
•
21 slides
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
47.3K views
•
65 slides
More Related Content
What's hot
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
66.7K views
•
43 slides
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
12.6K views
•
102 slides
双対性
Yoichi Iwata
25.4K views
•
89 slides
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
57.1K views
•
51 slides
グラフデータ分析 入門編
順也 山口
33.8K views
•
65 slides
最小カットを使って「燃やす埋める問題」を解く
shindannin
31.3K views
•
128 slides
What's hot
(20)
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
•
66.7K views
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
•
12.6K views
双対性
Yoichi Iwata
•
25.4K views
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
•
57.1K views
グラフデータ分析 入門編
順也 山口
•
33.8K views
最小カットを使って「燃やす埋める問題」を解く
shindannin
•
31.3K views
最適輸送の解き方
joisino
•
20.6K views
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
joisino
•
3.3K views
計算論的学習理論入門 -PAC学習とかVC次元とか-
sleepy_yoshi
•
19.7K views
直交領域探索
okuraofvegetable
•
12.1K views
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
•
14.1K views
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
Deep Learning JP
•
2.1K views
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
•
6.3K views
Deep Counterfactual Regret Minimization
Kenshi Abe
•
2.4K views
ウェーブレット木の世界
Preferred Networks
•
55K views
プログラミングコンテストでのデータ構造
Takuya Akiba
•
104.1K views
大規模グラフアルゴリズムの最先端
Takuya Akiba
•
54.2K views
『データ解析におけるプライバシー保護』勉強会 #2
MITSUNARI Shigeo
•
2K views
研究分野をサーベイする
Takayuki Itoh
•
114.9K views
Graphic Notes on Linear Algebra and Data Science
Kenji Hiranabe
•
2.9K views
More from HCPC: 北海道大学競技プログラミングサークル
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
3.6K views
•
57 slides
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
824 views
•
11 slides
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
449 views
•
10 slides
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
462 views
•
13 slides
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
339 views
•
5 slides
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
451 views
•
6 slides
More from HCPC: 北海道大学競技プログラミングサークル
(20)
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
•
3.6K views
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
•
824 views
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
•
449 views
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
•
462 views
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
•
339 views
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
•
451 views
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
•
209 views
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
•
172 views
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
•
249 views
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
•
112 views
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
•
256 views
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
•
173 views
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
•
123 views
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
•
105 views
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
•
164 views
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
•
96 views
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
•
106 views
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
•
67 views
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
•
64 views
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
•
3.2K views
最短経路問題 & 最小全域木
1.
1
2.
• • • • • • • • • • • 2
3.
• • • • • • • • • • • 3
4.
R×C • R C Sy Sx Gy Gx 𝑐(+,+)
𝑐(+,.) … 𝑐(+,0) 𝑐(1,+) 𝑐(1,.) … 𝑐(1,0) • 1 ≤ R, C ≤ 1000 4 S G
5.
R×C • 5 S G
6.
• G S G 6 S G
7.
• G S G 7 S G
8.
• G S G • 8 S G
9.
• G S G • 9 S G
10.
• G S G • 10 S G S G
11.
• S 11 S G
12.
• S S 12 S 1 1 G
13.
• S S • S 13 S 1 1 G
14.
• S S • S 14 2 S 1
2 1 2 G
15.
• S S • S 15 2 S 1
2 1 2 G G
16.
(Breadth First Search) • • 16 S ……
17.
17 S G 0 S S S S
18.
18 1 1 ★ 1 1 G 0
19.
19 1 1★ 1 1 G
20.
20 12 2 ★ 2 2 G 1
21.
21 1 2 2 2 ★ 2 G
22.
22 2 2 2★ 2 G 1
23.
23 2 2 ★ G 2
24.
24 2 3★ 3 G 2
25.
25 3 3 3 3 ★ G 3 2
26.
26 3 3 4 ★ 4 G 3
27.
27 3 3 4 ★ 4 G 3
28.
28 3 3 4 ★ 4 G 3
29.
29 11 11 11 G 11 ★ 10
30.
30 11 11 12 G 12 ★ 11
31.
31 11 12 12 G ★ 12 11
32.
32 12 12 G 12 1212 ★
12 11
33.
33 12 G 12 12 1313 ★ 12
34.
34 G 12 12 13 13 13 ★ 12
35.
35 12 13 13 ★ G 12
36.
36 12 13 13 ★ G 12 G
37.
(Queue) • • First In, First Out 37
38.
38
39.
39 #include <queue> queue< > q; q.push(x); O(1) q.front();
O(1) q.pop(); O(1) q.empty(); O(1)
40.
• O(1) • O(RC) 40 R: C
41.
41
42.
• • • • • • • • • • • 42
43.
• • • 43
44.
• • • • • 44
45.
• • • • • 45
46.
• • • • V E 46
47.
47
48.
48
49.
• 49
50.
• 50 INF INF INF
INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF
51.
51
52.
• 52
53.
• 53
54.
54
55.
55
56.
56
57.
57 O(V. ) O(V + E) O(1) O(Δ) O(V)
O(Δ) Δ:
58.
58 O(V. ) O(V + E) O(1) O(Δ) O(V)
O(Δ) Δ:
59.
s g g 59
60.
v e a b c • v e s g 𝑎+
𝑏+ 𝑐+ 𝑎^ 𝑏^ 𝑐^ • 1 ≤ v ≤ 100 1 ≤ e, c ≤ 10000 60
61.
• 61
62.
• 62 120 30 90 210 90 120 150 180120 210 210 90
63.
• = min ( + 210 , + 180 ) • 63 .. .. : 180 210 : : .. .. ..
64.
• = min ( + 210 , + 180 ) • • u = min ( u
+ u ) 64 .. .. : 180 210 : : .. .. ..
65.
(Bellman-Ford algorithm) • 65
66.
(Bellman-Ford algorithm) • • 66
67.
(Bellman-Ford algorithm) • • • 67
68.
0 INF INF INF INF INF INF INF INF INF 68 210 90 120 30 90 210 90 120
150 180120 210
69.
0 INF INF INF INF INF INF INF INF INF 69 120 30 90 210 90 120 150 180120 210 0 210 120 90 210 90
70.
0 90 210 INF INF 120 INF INF INF INF 70 120 30 90 210 90 120 150 180120 210 0 210 120 90 210 90
71.
0 90 210 INF INF 120 INF INF INF INF 71 120 30 90 210 90 120 150 180120 210 90 180 210 90
72.
0 90 210 300 INF 120 INF INF INF INF 72 120 30 90 210 90 120 150 180120 210 210 240 420 300 210 90
73.
0 90 210 300 510 120 420 INF INF 510 73 120 30 90 210 90 120 150 180120 210 300 420 510 510 210 90
74.
0 90 210 300 510 120 420 INF INF 510 74 120 30 90 210 90 120 150 180120 210 510 210 90
75.
0 90 150 300 510 120 210 INF INF 510 75 120 30 90 210 90 120 150 180120 210 120
210 150210 90
76.
0 90 150 300 510 120 210 330 INF 510 76 120 30 90 210 90 120 150 180120 210 210
330 210 90
77.
0 90 150 300 510 120 210 330 480 510 77 120 30 90 210 90 120 150 180120 210 330
480 210 90
78.
0 90 150 300 510 120 210 330 480 510 78 120 30 90 210 90 120 150 180120 210 510 210 90
79.
0 90 150 300 510 120 210 330 480 510 79 120 30 90 210 90 120 150 180120 210 510 210 90
80.
0 90 150 300 510 120 210 330 480 510 80 120 30 90 210 90 120 150 180120 210 210 90
81.
0 90 150 300 510 120 210 330 480 510 81 120 30 90 210 90 120 150 180120 210 210 90
82.
0 90 150 300 510 120 210 330 480 510 82 120 30 90 210 90 120 150 180120 210 0 210 90
83.
0 90 150 300 510 120 210 330 480 510 83 120 30 90 210 90 120 150 180120 210 90 210 90
84.
0 90 150 240 510 120 210 330 480 510 84 120 30 90 210 90 120 150 180120 210 150 240 210 90
85.
0 90 150 240 510 120 210 330 480 510 85 120 30 90 210 90 120 150 180120 210 150 240 210 90
86.
210 90 0 90 150 240 510 120 210 330 480 510 86 120 30 90 210 90 120 150 180120 210 150 240
87.
87 •
88.
88 • O(E)
89.
89 • O(E) •
90.
• O(E) • V O(VE) 90
91.
91
92.
92 120 30 90 210 90 120 150 180120 210 210 300 210 90 • (Dijkstra’s algorithm)
93.
0 INF INF INF INF INF INF INF INF INF 0 93 120 30 90 210 90 120 150 180120 210 210 90
94.
0 INF INF INF INF INF INF INF INF INF 94 0 210 120 90 120 30 90 210 90 120 150 180120 210 0 210 90
95.
95 0 210 120 90 120 30 90 210 90 120 150 180120 210 90 120 210 0 90 210 INF INF 120 INF INF INF INF 210 90
96.
120 210 9690 (180) 120 30 90 210 90 120 150 180120 210 0 90 210 INF INF 120 INF INF INF INF 90 210 90
97.
120 210 9790 120 30 90 210 90 120 150 180120 210 0 90 210 INF INF 120 INF INF INF INF 210 90 (180)
98.
210 98 120 150 240 120 30 90 210 90 120 150 180120 210 0 90 210 INF INF 120 INF INF INF INF 120 210 90 (240)
99.
150 210 210 99 120 150 210 120 30 90 210 90 120 150 180120 210 0 90 150 INF INF 120 210 INF INF INF 210 90 (240)
100.
210 210 240 100 150 120 30 90 210 90 120 150 180120 210 240 0 90 150 240 INF 120 210 INF INF INF 150 210 90
101.
210 240 101 210 120 30 90 210 90 120 150 180120 210 0 90 150 240 INF 120 210 INF INF INF 210 210 90
102.
240 330 102 210 120 30 90 210 90 120 150 180120 210 330 0 90 150 240 INF 120 210 330 INF INF 210 210 90
103.
330 450 450 103 240 120 30 90 210 90 120 150 180120 210 450 450 0 90 150 240 450 120 210 330 INF 450 240 210 90
104.
450 450 480 104 330 120 30 90 210 90 120 150 180120 210 480 0 90 150 240 450 120 210 330 480 450 330 210 90
105.
450 480 105 450 120 30 90 210 90 120 150 180120 210 0 90 150 240 450 120 210 330 480 450 450 210 90
106.
480 106 450 120 30 90 210 90 120 150 180120 210 0 90 150 240 450 120 210 330 480 450 450 210 90
107.
107 480 120 30 90 210 90 120 150 180120 210 0 90 150 240 450 120 210 330 480 450 480 210 90
108.
0 90 150 240 450 120 210 330 480 450 108 120 30 90 210 90 120 150 180120 210 210 90
109.
• 109
110.
• • O(E) 110
111.
• • O(E) • sort 111
112.
(Priority Queue) 112 •
113.
113 • (Priority Queue)
114.
114 • (Priority Queue)
115.
115 • (Priority Queue)
116.
116 • (Priority Queue)
117.
117 • (Priority Queue)
118.
118 • (Priority Queue)
119.
119 • (Priority Queue)
120.
120 • (Priority Queue)
121.
• • First In, First Out 121 (Priority Queue)
122.
122
123.
123 #include <queue> priority_queue< > pq; pq.push(x); O(log n) pq.top();
O(1) pq.pop(); O(log n) pq.empty(); O(1) n: pq
124.
• O(E) • 124
125.
• O(E) • O(log E) O(E log E) 125
126.
• 126
127.
• • 127
128.
128
129.
• O(VE) O(E log E) 129
130.
• O(VE) O(E log E) • • 130
131.
0 INF INF INF 0 131 10 30 −100 −50 20
132.
0 30 10 INF 10 30 132 10 30 −100 −50 20 0 0 30 10
133.
0 30 10 INF 30 133 10 30 −100 −50 20 10 10
134.
0 30 −20 50 −20 50 134 10 30 −100 −50 20 30 30 −20 50
135.
50 135 10 30 −100 −50 20 −20 0 30 −20 50 −20
136.
−50 136 10 30 −100 −50 20 50 0 30 −50 50 −50 50
137.
137 10 30 −100 −50 20 −50 0 30 −50 50 −50
138.
• • 138
139.
• • • V 139
140.
• • • V 140
141.
• 141 (Warshall–Floyd algorithm) dp
142.
• 142 (Warshall–Floyd algorithm) dp
143.
• 143 dp 90 210 120 90 210
90 30 90 210 120 210 210 120 30 90 120 90 120 120 150 180 150 210 180
144.
• 144 dp 0 90 210
120 90 0 210 0 90 30 90 0 210 120 210 210 0 120 30 0 90 120 90 0 120 120 0 150 180 150 0 210 180 0
145.
145 • dp 0 90 210
120 90 0 210 0 90 30 90 0 210 120 210 210 0 120 30 0 90 120 90 0 120 120 0 150 180 150 0 210 180 0 for(int k = 0; k < V; k++) for(int i = 0; i < V; i++) for(int j = 0; j < V; j++) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
146.
146 • dp 0 90 150
240 450 120 210 330 480 450 90 0 240 330 540 210 300 420 570 540 150 240 0 90 300 30 120 240 390 300 240 330 90 0 210 120 120 240 390 300 450 540 300 210 0 330 330 450 600 420 120 210 30 120 330 0 90 210 360 330 210 300 120 120 330 90 0 120 270 300 330 420 240 240 450 210 120 0 150 180 480 570 390 390 600 360 270 150 0 300 450 540 300 210 420 330 300 180 330 0
147.
for(int k = 0;
k < V; k++) for(int i = 0; i < V; i++) for(int j = 0; j < V; j++) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]); • i j k • O( 𝐕 𝟑) 147
148.
for(int k = 0;
k < V; k++) for(int i = 0; i < V; i++) for(int j = 0; j < V; j++) if(dp[i][k] != INF && dp[k][j] != INF) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]); • • 148
149.
• Dijkstra 149
150.
• Dijkstra 150
151.
• Dijkstra 151
152.
• • • • • • • • • • • 152
153.
153 • • • •
154.
• • • • 154
155.
• • • • 155
156.
• 156
157.
• • 157
158.
• • • 158
159.
• • • • 159
160.
(Spanning Tree) • 160 10 2 13 7 1013 7 10 2 7 2 13 7
161.
(Spanning Tree) • 161 10 2 13 7 1013 7 10 2 7 2 13 7
162.
(Spanning Tree) • 162 10 2 13 7 1013 7 10 2 7 2 13 7
163.
163
164.
v e a b d • v e 𝑎+
𝑏+ 𝑑+ 𝑎^ 𝑏^ 𝑑^ • 1 ≤ v ≤ 100 1 ≤ e, d ≤ 10000 164
165.
• 165
166.
• 166 160 45 135 260 125 180 135 170130 240 175 110
167.
• • 167 (Prim’s MST algorithm) 29 7 61 43
168.
• • 168 (Prim’s MST algorithm) 7 61 29 43
169.
160 45 135 125 180 135 170130 240 175 110 0 INF INF INF INF INF INF INF INF INF 0 169 (Priority Q) 260 0
170.
160 45 135 125 180 135 170130 240 175 110 USED INF INF INF INF INF INF INF INF INF 170 0 (Priority Q) 260 0
171.
160 45 135 125 180 135 170130 240 175 110 USED 110 175 INF INF 160 INF INF INF INF 110 160 175 171 175 160 110 (Priority Q) 260 0
172.
160 45 135 125 180 135 170130 240 175 110 USED USED 175 INF INF 160 INF INF INF INF 160 175 172 110 (110) (Priority Q) 260 110
173.
160 45 135 125 180 135 170130 240 175 110 USED USED 175 INF INF 160 INF INF INF INF 160 175 173 (110) (Priority Q) 260 110
174.
160 45 135 125 180 135 170130 240 175 110 USED USED 45 INF INF USED 125 INF INF INF 45 125 175 174 160 45 125 (160) (Priority Q) 260 270
175.
160 45 135 125 180 135 170130 240 175 110 USED USED USED 135 INF USED 125 INF INF INF 125 135 175 175 45 (Priority Q) 135 260 315
176.
160 45 135 125 180 135 170130 240 175 110 USED USED USED 130 INF USED USED 180 INF INF 130 135 175 180 176 125 (Priority Q) 130 440 180 260
177.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED 180 INF 240 135 175 180 240 260 177 130 (Priority Q) 260 240260 570
178.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED 180 INF 240 175 180 240 260 178 135 (Priority Q) 260 570
179.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED 180 INF 240 180 240 260 179 175 (Priority Q) 260 570
180.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED USED 135 170 135 170 240 260 180 180 (Priority Q) 170 135 260 750
181.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED USED USED 170 170 240 260 181 135 (Priority Q) 260 885
182.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED USED USED USED 240 260 182 170 (Priority Q) 260 1055
183.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED 260 USED USED USED USED USED 260 183 240 (Priority Q) 260 1055
184.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED USED USED USED USED USED USED 184 260 (Priority Q) 260 1315
185.
160 45 135 125 180 135 170130 240 175 110 USED USED USED USED USED USED USED USED USED USED 185 (Priority Q) 260 1315
186.
U X X U\X e e
T’ 1. T’ e 2. X U\X e e’ 3. T’ e’ e 4. e e’ e e 186
187.
U X X U\X e e
T’ 1. T’ e 2. X U\X e e’ 3. T’ e’ e 4. e e’ e e 187 e e
188.
U X X U\X e e
T’ 1. T’ e 2. X U\X e e’ 3. T’ e’ e 4. e e’ e e 188 T‘
189.
U X X U\X e e
T’ 1. T’ e 2. X U\X e e’ 3. T’ e’ e 4. e e’ e e 189 T‘ + e e e’
190.
U X X U\X e e
T’ 1. T’ e 2. X U\X e e’ 3. T’ e’ e 4. e e’ e e 190 T‘ − e’ + e e
191.
• − + − USED − • O(E log E) 191
192.
192
193.
• • 193 (Kruskal’s algorithm)
194.
160 45 135 125 180 135 170130 240 175 110 194 45 110 125 130 135 135 160 170 175 180 240 260 260 0
195.
160 135 125 180 135 170130 240 175 110 195 45 110 125 130 135 135 160 170 175 180 240 260 45 260 45
196.
160 45 135 125 180 135 170130 240 175 110 196 45 110 125 130 135 135 160 170 175 180 240 260 260 155
197.
160 45 135 125 180 135 170130 240 175 110 197 45 110 125 130 135 135 160 170 175 180 240 260 260 280
198.
160 45 135 125 180 135 170130 240 175 110 198 45 110 125 130 135 135 160 170 175 180 240 260 260 410
199.
160 45 135 125 180 135 170130 240 175 110 199 45 110 125 130 135 135 160 170 175 180 240 260 260 410
200.
160 45 135 125 180 135 170130 240 175 110 200 45 110 125 130 135 135 160 170 175 180 240 260 260 545
201.
160 45 135 125 180 135 170130 240 175 110 201 45 110 125 130 135 135 160 170 175 180 240 260 260 705
202.
160 45 135 125 180 135 170130 240 175 110 202 45 110 125 130 135 135 160 170 175 180 240 260 260 875
203.
160 45 135 125 180 135 170130 240 175 110 203 45 110 125 130 135 135 160 170 175 180 240 260 260 875
204.
160 45 135 125 180 135 170130 240 175 110 204 45 110 125 130 135 135 160 170 175 180 240 260 260 1055
205.
160 45 135 125 180 135 170130 240 175 110 205 45 110 125 130 135 135 160 170 175 180 240 260 260 1055
206.
260 160 45 135 125 180 135 170130 240 175 110 206 45 110 125 130 135 135 160 170 175 180 240 260 1315
207.
260 160 45 135 125 180 135 170130 240 175 110 207 45 110 125 130 135 135 160 170 175 180 240 260 1315
208.
• O(E log E) 208
209.
• O(E log E) • O(E) 209
210.
• O(E log E) • O(E) • 210
211.
211
212.
• Union-Find Tree (disjoint-set forest) Union-Find Tree 212
213.
• 213 Union-Find Tree
214.
• • 214 Union-Find Tree
215.
• • 215 Union-Find Tree
216.
• • • 216 Union-Find Tree
217.
• • • 217 Union-Find Tree
218.
218 Union-Find Tree
219.
O(n) 219 Union-Find Tree n:
220.
O(n) 220 Union-Find Tree n:
221.
• 221 Union-Find Tree
222.
• 222 Union-Find Tree
223.
• O(α(n)) 223 Union-Find Tree n:
224.
• O(α(n)) • α(n) 𝜶 𝟐
𝟐 𝟐 𝟐 𝟐 𝟐 𝟐 𝟐 − 𝟑 = 𝟒 224 Union-Find Tree n:
225.
• O(α(n)) • α(n) 𝜶 𝟐
𝟐 𝟐 𝟐 𝟐 𝟐 𝟐 𝟐 − 𝟑 = 𝟒 O(1) 225 Union-Find Tree n:
226.
• O(E log E) • O(E) • 226
227.
• O(E log E) • O(E) • O(1) O(E log E) + O(E) = O(E log E) 227
228.
228
229.
229
230.
• Union-Find Tree 230
231.
• Union-Find Tree • • O(E) • 231
232.
• • 232
233.
• • • 233