Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
京大 マイコンクラブ
PDF, PPTX
6,559 views
素集合データ構造
競技プログラミング練習会2014 Normalで使ったスライドです。素集合データ構造であるUnion-Find木について説明しています。
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PDF
Domain Modeling Made Functional (DevTernity 2022)
by
Scott Wlaschin
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
PDF
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
by
Kentaro Yoshida
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PPTX
動的計画法を極める!
by
HCPC: 北海道大学競技プログラミングサークル
PPTX
トランザクション入門
by
Kumazaki Hiroki
PDF
AtCoder Beginner Contest 023 解説
by
AtCoder Inc.
PDF
Union find(素集合データ構造)
by
AtCoder Inc.
Domain Modeling Made Functional (DevTernity 2022)
by
Scott Wlaschin
トランザクションの設計と進化
by
Kumazaki Hiroki
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
by
Kentaro Yoshida
冬のLock free祭り safe
by
Kumazaki Hiroki
動的計画法を極める!
by
HCPC: 北海道大学競技プログラミングサークル
トランザクション入門
by
Kumazaki Hiroki
AtCoder Beginner Contest 023 解説
by
AtCoder Inc.
Union find(素集合データ構造)
by
AtCoder Inc.
What's hot
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
PDF
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
PDF
C++ マルチスレッド 入門
by
京大 マイコンクラブ
PDF
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
by
Takuya Akiba
PDF
写像 12 相
by
HCPC: 北海道大学競技プログラミングサークル
PDF
様々な全域木問題
by
tmaehara
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
PPTX
ChordアルゴリズムによるDHT入門
by
Hiroya Nagao
PDF
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
by
智啓 出川
PDF
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
by
Masayoshi Kondo
PDF
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PPTX
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
by
NTT DATA Technology & Innovation
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
論文紹介: An empirical evaluation of in-memory multi-version concurrency control
by
Sho Nakazono
PDF
深層学習時代の自然言語処理
by
Yuya Unno
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
PDF
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
by
catupper
PDF
Webアプリを並行開発する際のマイグレーション戦略
by
Takayuki Shimizukawa
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
by
NTT DATA Technology & Innovation
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
C++ マルチスレッド 入門
by
京大 マイコンクラブ
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
by
Takuya Akiba
写像 12 相
by
HCPC: 北海道大学競技プログラミングサークル
様々な全域木問題
by
tmaehara
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
ChordアルゴリズムによるDHT入門
by
Hiroya Nagao
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
by
智啓 出川
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
by
Masayoshi Kondo
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
by
NTT DATA Technology & Innovation
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
論文紹介: An empirical evaluation of in-memory multi-version concurrency control
by
Sho Nakazono
深層学習時代の自然言語処理
by
Yuya Unno
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
by
catupper
Webアプリを並行開発する際のマイグレーション戦略
by
Takayuki Shimizukawa
Viewers also liked
PPTX
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
PDF
幾何コンテスト2013
by
Naoto Mizuno
PDF
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
PPTX
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
PDF
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
PPTX
TCO2017R1
by
AtCoder Inc.
PDF
プログラミングコンテストでのデータ構造
by
Takuya Akiba
PDF
深さ優先探索による塗りつぶし
by
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
幾何コンテスト2013
by
Naoto Mizuno
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
TCO2017R1
by
AtCoder Inc.
プログラミングコンテストでのデータ構造
by
Takuya Akiba
深さ優先探索による塗りつぶし
by
AtCoder Inc.
More from 京大 マイコンクラブ
PDF
テキストファイルを読む💪 第1回
by
京大 マイコンクラブ
PDF
かわいくなろうとしたら語彙力が下がった話
by
京大 マイコンクラブ
PDF
Common Lisp入門
by
京大 マイコンクラブ
PDF
多倍長整数の乗算と高速フーリエ変換
by
京大 マイコンクラブ
PDF
つくってあそぼ ラムダ計算インタプリタ
by
京大 マイコンクラブ
PDF
Geometry with Unity
by
京大 マイコンクラブ
PDF
セミコロンレスc++
by
京大 マイコンクラブ
PDF
エンジニアと健康
by
京大 マイコンクラブ
PPTX
女の子になれなかった人のために
by
京大 マイコンクラブ
PDF
Pietで競プロしよう
by
京大 マイコンクラブ
ODP
もし太陽のコアがIntelCoreだったら
by
京大 マイコンクラブ
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
by
京大 マイコンクラブ
PDF
ドット絵でプログラミング!難解言語『Piet』勉強会
by
京大 マイコンクラブ
PDF
No SSH (@nojima; KMC関東例会)
by
京大 マイコンクラブ
PDF
DTM練習会2017第1.5回 「伴奏の付け方」
by
京大 マイコンクラブ
PPTX
hideya流 テストプレイ観察術
by
京大 マイコンクラブ
PDF
暗号技術入門 秘密の国のアリス 総集編
by
京大 マイコンクラブ
PDF
Altseed
by
京大 マイコンクラブ
PDF
C#でゲームを作る2016 第8回
by
京大 マイコンクラブ
テキストファイルを読む💪 第1回
by
京大 マイコンクラブ
かわいくなろうとしたら語彙力が下がった話
by
京大 マイコンクラブ
Common Lisp入門
by
京大 マイコンクラブ
多倍長整数の乗算と高速フーリエ変換
by
京大 マイコンクラブ
つくってあそぼ ラムダ計算インタプリタ
by
京大 マイコンクラブ
Geometry with Unity
by
京大 マイコンクラブ
セミコロンレスc++
by
京大 マイコンクラブ
エンジニアと健康
by
京大 マイコンクラブ
女の子になれなかった人のために
by
京大 マイコンクラブ
Pietで競プロしよう
by
京大 マイコンクラブ
もし太陽のコアがIntelCoreだったら
by
京大 マイコンクラブ
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
プログラムを高速化する話Ⅱ 〜GPGPU編〜
by
京大 マイコンクラブ
ドット絵でプログラミング!難解言語『Piet』勉強会
by
京大 マイコンクラブ
No SSH (@nojima; KMC関東例会)
by
京大 マイコンクラブ
DTM練習会2017第1.5回 「伴奏の付け方」
by
京大 マイコンクラブ
hideya流 テストプレイ観察術
by
京大 マイコンクラブ
暗号技術入門 秘密の国のアリス 総集編
by
京大 マイコンクラブ
Altseed
by
京大 マイコンクラブ
C#でゲームを作る2016 第8回
by
京大 マイコンクラブ
素集合データ構造
1.
素集合データ構造 (Union-Find木)
2.
Union-Find木 ●互いに交わらない集合(素集合)の族を扱うデー タ構造 ●各集合に「代表」と呼ばれる要素を決めておく ●代表が違う⇔集合が違う ●Union-Find木は2つの操作ができる ●集合の要素からその集合の代表を求める(Find) ●2つの集合を合併する(Union)
3.
Find 4 59 10 1 7 11 63 12 2 8 13 代表
4.
Find 4 59 10 1 7 11 63 12 2 8 13 代表
5.
Find 4 59 10 1 7 11 63 12 2 8 13 代表
6.
Find 4 59 10 1 7 11 63 12 2 8 13 代表
7.
Find 4 59 10 1 7 11 63 12 2 8 13 代表
8.
Find 4 59 10 1 7 11 63 12 2 8 13 代表 4の属する集合と8の属する集合は違う!
9.
Union 4 59 10 1 7 11 63 12 2 8 13 代表
10.
Union 4 59 10 1 7 11 63 12 2 8 13 代表
11.
Union 4 59 10 1 7 11 6 3 12 2 8 13 代表
12.
Union-Find木の実装 ●それぞれの集合を根付き木で表す ●代表を根にする 1 5 2 6 3 79 10 11 12 134
8
13.
Find ●親を辿って根を見る 1 5 2 6 3 79 10 11 12 134
8
14.
Find ●親を辿って根を見る 1 5 2 6 3 79 10 11 12 134
8
15.
Find ●親を辿って根を見る 1 5 2 6 3 79 10 11 12 134
8
16.
Find ●親を辿って根を見る 1 5 2 6 3 79 10 11 12 134
8
17.
Union ●一方をもう一方の代表の子にする 1 5 2 6 3 79 10 11 12 134
8
18.
Union ●一方をもう一方の代表の子にする 1 5 2 6 3 7 9 10 11 12 134
8
19.
Union-Find木の計算量 ●このままだと最悪計算量は ●Find ●Union ●Findに時間がかかりすぎる ●2種類の高速化法がある … O(n) O(1)
20.
高速化その1:rank ●それぞれの木に と呼ばれる数値をつける ●要素1個の時 ● 同士の木を合併したら になる ● が違う木同士を合併するときは、 の高 い方に低い方を合併し、 は の高い方の にする ● の木の高さは高々 k rank rank 0 rank k
rank k+1 rank rank rank k rank rank rank
21.
高速化その1:rank 1 5 2 6 3 79 10 11 12 134
8 rank 2 rank 2 rank 1 rank 1
22.
高速化その1:rank 1 5 2 6 3 79 10 11 12 134
8 rank 2 rank 2 rank 1 rank 1
23.
高速化その1:rank 1 5 2 6 3 7 9 10 11 12 134
8 rank 2 rank 2 rank 1
24.
高速化その1:rank ● の木を作るには少なくとも 個の要素が 必要⇒ の木を作るには最低でも 個 の要素が必要(数学的帰納法) ●要素 個のUnion-Find木は高々 ●要素 個のUnion-Find木の高さは高々 ●最悪計算量は ●Find ●Union rank k 2k rank
k+1 2k+1 n rank⌊log2(n)⌋ n ⌊log2(n)⌋ O(log(n)) O(1)
25.
高速化その2:経路圧縮 ●Findするときに、根を親にしてしまう ●ついでに根にたどり着くまでの先祖の親も根にして しまう ●重要なのは根の情報だけだからこれで問題ない
26.
高速化その2:経路圧縮 1 5 2 6 3 7 9 10 11 12 13 4
8
27.
高速化その2:経路圧縮 1 5 2 6 3 7 9 10 11 12 13 4
8
28.
高速化その2:経路圧縮 1 5 2 6 3 79 10 11 12 13 4 8
29.
高速化その2:経路圧縮 ●最悪計算量(ならし) ●Find ●Union ●高速化その1と組み合わせることもできる ●経路圧縮しても は再計算しない ●Find ●Union ● はアッカーマン関数の逆関数、実質定数 O(log(n)) O(1) O(α(n)) O(1) rank α(n)
Download