Submit Search
Upload
素集合データ構造
•
5 likes
•
6,497 views
京大 マイコンクラブ
Follow
競技プログラミング練習会2014 Normalで使ったスライドです。素集合データ構造であるUnion-Find木について説明しています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
色々なダイクストラ高速化とありますが結局はRadixHeapの解説です
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
二部グラフで最小点被覆、最大安定集合、最小辺被覆を具体的に構成する方法についてです。
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
about van Emde Boas tree @JOIkakisemi2012
Nazoki
Nazoki
Ken Ogura
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
2016年7月28日 HCPC勉強会
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
Chokudai search
Chokudai search
AtCoder Inc.
Recommended
色々なダイクストラ高速化とありますが結局はRadixHeapの解説です
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
二部グラフで最小点被覆、最大安定集合、最小辺被覆を具体的に構成する方法についてです。
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
about van Emde Boas tree @JOIkakisemi2012
Nazoki
Nazoki
Ken Ogura
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
2016年7月28日 HCPC勉強会
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
Chokudai search
Chokudai search
AtCoder Inc.
情オリ2012春合宿講義資料
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
前編 (平衡二分探索木編) はこちら http://www.slideshare.net/iwiwi/2-12188757
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
LCAとRMQの関係とそれを利用した高速なアルゴリズム、簡潔データ構造化の大雑把な解説。
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
続き (動的木編) はこちら http://www.slideshare.net/iwiwi/2-12188845
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
そのロリハ(Rolling Hash)、大丈夫ですか? 衝突するケースが構成できるかもしれません・・
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
JOI春合宿2018講義資料
双対性
双対性
Yoichi Iwata
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
間違いを見つけたらTwitter(@kyuridenamida)に伝えてください。
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
アルゴリズム・ゲームAI・インフラ・データマイニング・セキュリティのコンテストと、そのはじめかたを紹介していきます。
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
Union find(素集合データ構造)の解説です
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
2013 JOI春合宿 二日目講義
様々な全域木問題
様々な全域木問題
tmaehara
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
AtCoder Inc.
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
2013/1/9に統数研チャンネルにて、ウェーブレット木の解説をしました。岩波書店より出版されました「高速文字列解析の世界」の解説になっています。
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
JOIss2013グラフ理論班かつっぱ氏発表
辺彩色
辺彩色
Ken Ogura
Divisor
Divisor
oupc
Competitive Programming Advent Calendar 2016の16日目の記事ですよ! http://www.adventar.org/calendars/1466
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
幾何コンテスト2013
幾何コンテスト2013
Naoto Mizuno
More Related Content
What's hot
情オリ2012春合宿講義資料
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
前編 (平衡二分探索木編) はこちら http://www.slideshare.net/iwiwi/2-12188757
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
LCAとRMQの関係とそれを利用した高速なアルゴリズム、簡潔データ構造化の大雑把な解説。
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
続き (動的木編) はこちら http://www.slideshare.net/iwiwi/2-12188845
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
そのロリハ(Rolling Hash)、大丈夫ですか? 衝突するケースが構成できるかもしれません・・
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
JOI春合宿2018講義資料
双対性
双対性
Yoichi Iwata
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
間違いを見つけたらTwitter(@kyuridenamida)に伝えてください。
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
アルゴリズム・ゲームAI・インフラ・データマイニング・セキュリティのコンテストと、そのはじめかたを紹介していきます。
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
Union find(素集合データ構造)の解説です
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
2013 JOI春合宿 二日目講義
様々な全域木問題
様々な全域木問題
tmaehara
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
AtCoder Inc.
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
2013/1/9に統数研チャンネルにて、ウェーブレット木の解説をしました。岩波書店より出版されました「高速文字列解析の世界」の解説になっています。
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
JOIss2013グラフ理論班かつっぱ氏発表
辺彩色
辺彩色
Ken Ogura
Divisor
Divisor
oupc
What's hot
(20)
指数時間アルゴリズム入門
指数時間アルゴリズム入門
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
Rolling Hashを殺す話
Rolling Hashを殺す話
双対性
双対性
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
様々な全域木問題
様々な全域木問題
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
ウェーブレット木の世界
ウェーブレット木の世界
辺彩色
辺彩色
Divisor
Divisor
Viewers also liked
Competitive Programming Advent Calendar 2016の16日目の記事ですよ! http://www.adventar.org/calendars/1466
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
幾何コンテスト2013
幾何コンテスト2013
Naoto Mizuno
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
TopCoder Open 2017 Round1の方針説明です。
TCO2017R1
TCO2017R1
AtCoder Inc.
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
深さ優先探索による塗りつぶしの解説です
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
Viewers also liked
(7)
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
幾何コンテスト2013
幾何コンテスト2013
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
TCO2017R1
TCO2017R1
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
More from 京大 マイコンクラブ
2021/10/28の例会講座で使用したスライド (以下リンク) のSS移植版です。(オリジナルの発表から内容を一部修正しています。) https://www.canva.com/design/DAEt-1WzsZI/h85bHwMPQ8oxerFP-S3EDQ/view?utm_content=DAEt-1WzsZI&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
京大 マイコンクラブ
2021/09/26のLT大会で使用したスライド (以下リンク) のSS移植版です。 https://www.canva.com/design/DAEqXneuzGc/bVRBpr16c9lhZ6niQ2PEzQ/view?utm_content=DAEqXneuzGc&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
京大 マイコンクラブ
Common Lispの入門スライド。作成者はCoil
Common Lisp入門
Common Lisp入門
京大 マイコンクラブ
多倍長整数の乗算を高速に行うアルゴリズムを、カラツバ法から始めて、最終的に高速フーリエ変換を用いた乗算に至るまでを解説しました。
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
京大 マイコンクラブ
2018/10/18 KMC例会講座 型無しラムダ計算のインタプリタを実装してみる
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
Geometry with Unity
Geometry with Unity
Geometry with Unity
京大 マイコンクラブ
セミコロンを使わずにc++を書きたい
セミコロンレスc++
セミコロンレスc++
京大 マイコンクラブ
エンジニアは肩こりや腰痛など様々な体の不調を抱えがち。 ちょっとした工夫でそれらを根本から解消
エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
音声の分析合成と機械学習を使ってボイスチェンジャーを作るスライドです
女の子になれなかった人のために
女の子になれなかった人のために
京大 マイコンクラブ
KMC春合宿で発表した、難解プログラミング言語で競技プログラミングに挑戦するLTです。
Pietで競プロしよう
Pietで競プロしよう
京大 マイコンクラブ
もし太陽のコアがCPUと同程度の熱密度を持っていたらどうなるか、雑に計算した結果を発表したLTのスライドです
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
京大 マイコンクラブ
Unity や MonoGame など、C# でゲームを作る環境が整ってきた昨今。メモリ?なにそれ美味しいの?という初学者が、難しいことを考えずにモノづくりができる一方で、メモリについて知らないとトラブルになることもあります。C#でゲームプログラムを書いたことがある、くらいの方を対象に、メモリとは何か、から、メモリリーク・ガベージコレクションの話、そしてガベージコレクションの回数を減らす実装方法について話します。
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
GPUを利用して汎用演算を行う技術であるGPGPUを用いて、プログラムを高速化する技法についてまとめました。高速化の具体例も適宜用いて解説しています。 CPU編はこちら https://www.slideshare.net/KMC_JP/ss-45855264
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
関西情報系学生団体交流会2017 Piet勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
京大 マイコンクラブ
2017-09-02 KMC関東例会 at Cybozu インフラの自動化の辛さと ssh について
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
KMCの新入生プロジェクト「DTM練習会2017」の第1.5回にて行った「伴奏の付け方」に関する講座のスライドです。
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
テストプレイを観察するための心得などを紹介します。 KMC春合宿2017で使用したものに加筆修正を加えたもの。
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
京大 マイコンクラブ
KMC春合宿2017で使ったスライドです 「暗号技術入門 第3版 秘密の国のアリス 著:結城 浩」 をまとめたものです
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
ゲームエンジンをお探しのあなたに
Altseed
Altseed
京大 マイコンクラブ
KMC’の新入生プロジェクトの一つ「C#でゲームを作る2016」で使ったスライドです。
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
More from 京大 マイコンクラブ
(20)
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
Common Lisp入門
Common Lisp入門
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
Geometry with Unity
Geometry with Unity
セミコロンレスc++
セミコロンレスc++
エンジニアと健康
エンジニアと健康
女の子になれなかった人のために
女の子になれなかった人のために
Pietで競プロしよう
Pietで競プロしよう
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
Altseed
Altseed
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
素集合データ構造
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 now