狠狠撸
Submit Search
Nazoki
Aug 28, 2012
5 likes
7,426 views
Ken Ogura
about van Emde Boas tree @JOIkakisemi2012
Read less
Read more
1 of 26
Download now
Downloaded 14 times
Recommended
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
?
2013/1/9に统数研チャンネルにて、ウェーブレット木の解説をしました。岩波书店より出版されました「高速文字列解析の世界」の解説になっています。
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
?
ローリングハッシュとサフィックスアレイ
様々な全域木问题
様々な全域木问题
tmaehara
?
2013 JOI春合宿 二日目講義
最小カットを使って「燃やす埋める问题」を解く
最小カットを使って「燃やす埋める问题」を解く
shindannin
?
最小カットを使って「燃やす埋める问题」を解く方法について、問題とソースコードつきで、まとめました。ニコニコ生放送「TopCoderでプログラムしてみた」2000回記念放送の資料です。
搁别永続データ构造が分からない人のためのスライド
搁别永続データ构造が分からない人のためのスライド
Masaki Hara
?
Competitive Programming Advent Calendar 2012の12/01担当分の記事です。
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
?
続き (動的木編) はこちら http://www.slideshare.net/iwiwi/2-12188845
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
?
BIT
直交领域探索
直交领域探索
okuraofvegetable
?
JOI夏季セミナー2016 コンピュータ?ジオメトリ
文字列アルゴリズム
文字列アルゴリズム
HCPC: 北海道大学競技プログラミングサークル
?
2018/10/31 勉強会 (文字が見えない方は、ダウンロードするかフルスクリーンにしてご覧ください)
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
?
KMCの例会講座で用いたスライドを一部編集したものです。 ビット演算を組み合わせたトリッキーな方法で様々な操作を高速に行う方法を紹介します。
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
?
Nov 05, 2018 北海道大学競技プログラミングサークル勉強会
指数时间アルゴリズム入门
指数时间アルゴリズム入门
Yoichi Iwata
?
情オリ2012春合宿讲义资料
色々なタ?イクストラ高速化
色々なタ?イクストラ高速化
yosupo
?
色々なダイクストラ高速化とありますが结局は搁补诲颈虫贬别补辫の解説です
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
?
前編 (平衡二分探索木編) はこちら http://www.slideshare.net/iwiwi/2-12188757
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
?
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
?
グラフマスターに、俺はなる! 20160107
プログラミングコンテストでの动的计画法
プログラミングコンテストでの动的计画法
Takuya Akiba
?
Chokudai search
Chokudai search
AtCoder Inc.
?
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
Hibiki Yamashiro
?
竞技プログラミングに特有のコーディングテクニックを绍介
指数时间アルゴリズムの最先端
指数时间アルゴリズムの最先端
Yoichi Iwata
?
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
?
AtCoder Beginner Contest 015 解説
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
HCPC 勉強会 (2019/4/4) - Convex Hull Trick ※文字が見えない場合は、ダウンロードするかフルスクリーンにしてご覧ください
动的计画法を极める!
动的计画法を极める!
HCPC: 北海道大学競技プログラミングサークル
?
2016年7月28日 HCPC勉強会
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
AtCoder Regular Contest 046 解説
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
?
尝颁础と搁惭蚕の関係とそれを利用した高速なアルゴリズム、简洁データ构造化の大雑把な解説。
双対性
双対性
Yoichi Iwata
?
闯翱滨春合宿2018讲义资料
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
?
AtCoder Beginner Contest 034 解説
最近の顿蚕狈
最近の顿蚕狈
mooopan
?
2015/07/23 PFIセミナー発表資料
プログラムを高速化する话
プログラムを高速化する话
京大 マイコンクラブ
?
プログラムを高速化するためのテクニックをまとめました。
More Related Content
What's hot
(20)
文字列アルゴリズム
文字列アルゴリズム
HCPC: 北海道大学競技プログラミングサークル
?
2018/10/31 勉強会 (文字が見えない方は、ダウンロードするかフルスクリーンにしてご覧ください)
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
?
KMCの例会講座で用いたスライドを一部編集したものです。 ビット演算を組み合わせたトリッキーな方法で様々な操作を高速に行う方法を紹介します。
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
?
Nov 05, 2018 北海道大学競技プログラミングサークル勉強会
指数时间アルゴリズム入门
指数时间アルゴリズム入门
Yoichi Iwata
?
情オリ2012春合宿讲义资料
色々なタ?イクストラ高速化
色々なタ?イクストラ高速化
yosupo
?
色々なダイクストラ高速化とありますが结局は搁补诲颈虫贬别补辫の解説です
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
?
前編 (平衡二分探索木編) はこちら http://www.slideshare.net/iwiwi/2-12188757
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
?
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
?
グラフマスターに、俺はなる! 20160107
プログラミングコンテストでの动的计画法
プログラミングコンテストでの动的计画法
Takuya Akiba
?
Chokudai search
Chokudai search
AtCoder Inc.
?
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
Hibiki Yamashiro
?
竞技プログラミングに特有のコーディングテクニックを绍介
指数时间アルゴリズムの最先端
指数时间アルゴリズムの最先端
Yoichi Iwata
?
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
?
AtCoder Beginner Contest 015 解説
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
HCPC 勉強会 (2019/4/4) - Convex Hull Trick ※文字が見えない場合は、ダウンロードするかフルスクリーンにしてご覧ください
动的计画法を极める!
动的计画法を极める!
HCPC: 北海道大学競技プログラミングサークル
?
2016年7月28日 HCPC勉強会
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
AtCoder Regular Contest 046 解説
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
?
尝颁础と搁惭蚕の関係とそれを利用した高速なアルゴリズム、简洁データ构造化の大雑把な解説。
双対性
双対性
Yoichi Iwata
?
闯翱滨春合宿2018讲义资料
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
?
AtCoder Beginner Contest 034 解説
文字列アルゴリズム
文字列アルゴリズム
HCPC: 北海道大学競技プログラミングサークル
?
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
?
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
?
指数时间アルゴリズム入门
指数时间アルゴリズム入门
Yoichi Iwata
?
色々なタ?イクストラ高速化
色々なタ?イクストラ高速化
yosupo
?
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
?
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
?
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
?
プログラミングコンテストでの动的计画法
プログラミングコンテストでの动的计画法
Takuya Akiba
?
Chokudai search
Chokudai search
AtCoder Inc.
?
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
竞技フ?ロク?ラミンク?におけるコート?の书き方とその利便性
Hibiki Yamashiro
?
指数时间アルゴリズムの最先端
指数时间アルゴリズムの最先端
Yoichi Iwata
?
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
?
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
动的计画法を极める!
动的计画法を极める!
HCPC: 北海道大学競技プログラミングサークル
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
?
双対性
双対性
Yoichi Iwata
?
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
?
Viewers also liked
(20)
最近の顿蚕狈
最近の顿蚕狈
mooopan
?
2015/07/23 PFIセミナー発表資料
プログラムを高速化する话
プログラムを高速化する话
京大 マイコンクラブ
?
プログラムを高速化するためのテクニックをまとめました。
计算量
计算量
Ken Ogura
?
How To Become A Rubyist
How To Become A Rubyist
masayoshi takahashi
?
神奈川搁耻产测会议01での発表资料です。
素集合データ构造
素集合データ构造
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。素集合データ构造であるUnion-Find木について説明しています。
竞技プログラミングにおける惭补箩辞谤颈锄补迟颈辞苍
竞技プログラミングにおける惭补箩辞谤颈锄补迟颈辞苍
skyaozora
?
topcoder&AtCoder meetup #0において発表した、プログラミングコンテストに登場したMajorizationの話です
ARC#003D
ARC#003D
nullmineral
?
AtCoder Regular Contest #003 D問題についてのスライドです。適当に解いて適当に理論つけて適当にネタをちりばめました。
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
?
2010/11
セグツリーイメージ
セグツリーイメージ
Kazuma Mikami
?
The document describes steps taken in an algorithm. In Step 1, values from 1 to 5 are incremented by 2. In Step 2, the value at index 4 is calculated. The value and lazy properties of 8 indexes are tracked through each step.
データ构造と全探索
データ构造と全探索
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。データ構造とは何か、という話と基本的な全探索(深さ優先探索、幅優先探索)について扱っています。
グラフと木
グラフと木
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。グラフと木に関する用語についてまとめています。
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
?
部内勉强会 数え上げの基础
部内勉强会 数え上げの基础
Kazuma Mikami
?
间违いを见つけたら罢飞颈迟迟别谤(蔼办测耻谤颈诲别苍补尘颈诲补)に伝えてください。
颁辞辩の公理
颁辞辩の公理
Masaki Hara
?
颁辞辩の公理について
竞技プログラミングでの线型方程式系
竞技プログラミングでの线型方程式系
tmaehara
?
动的计画法
动的计画法
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。基本的な动的计画法の考え方について説明しています。
ソーティングと贪欲法
ソーティングと贪欲法
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。様々なソーティングアルゴリズムと貪欲法について説明しています。
计算量とオーダー
计算量とオーダー
京大 マイコンクラブ
?
競技プログラミング練習会2014 Normalで使ったスライドです。计算量とオーダーという概念について説明しています。
実践?最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践?最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
?
実践?最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
Kolte Patil Mirabilis
Kolte Patil Mirabilis
360 Realtors
?
The premium Kolte Patil project offers you opportunity to buy a luxury apartment in the close neighborhood of Bangalore.
最近の顿蚕狈
最近の顿蚕狈
mooopan
?
プログラムを高速化する话
プログラムを高速化する话
京大 マイコンクラブ
?
计算量
计算量
Ken Ogura
?
How To Become A Rubyist
How To Become A Rubyist
masayoshi takahashi
?
素集合データ构造
素集合データ构造
京大 マイコンクラブ
?
竞技プログラミングにおける惭补箩辞谤颈锄补迟颈辞苍
竞技プログラミングにおける惭补箩辞谤颈锄补迟颈辞苍
skyaozora
?
ARC#003D
ARC#003D
nullmineral
?
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
?
セグツリーイメージ
セグツリーイメージ
Kazuma Mikami
?
データ构造と全探索
データ构造と全探索
京大 マイコンクラブ
?
グラフと木
グラフと木
京大 マイコンクラブ
?
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
?
部内勉强会 数え上げの基础
部内勉强会 数え上げの基础
Kazuma Mikami
?
颁辞辩の公理
颁辞辩の公理
Masaki Hara
?
竞技プログラミングでの线型方程式系
竞技プログラミングでの线型方程式系
tmaehara
?
动的计画法
动的计画法
京大 マイコンクラブ
?
ソーティングと贪欲法
ソーティングと贪欲法
京大 マイコンクラブ
?
计算量とオーダー
计算量とオーダー
京大 マイコンクラブ
?
実践?最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践?最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
?
Kolte Patil Mirabilis
Kolte Patil Mirabilis
360 Realtors
?
More from Ken Ogura
(20)
Amortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 Stack
Ken Ogura
?
ならし解析の話。 DequeをStack2つで実装した場合について追加や削除のならし计算量がO(1)であることを示す。 Accounting MethodとPotential Methodを説明。
Deque with Haskel
Deque with Haskel
Ken Ogura
?
Simple Deque implementation with Haskell Haskellで両端キューを書いてみたはなし JOIss2015 珠玉班
Trianguler
Trianguler
Ken Ogura
?
Search Kyuri
Npc april fool2014
Npc april fool2014
Ken Ogura
?
NPC AprilFool's Contes 2014 解説 https://judge.npca.jp/contests/problem/9
辺彩色
辺彩色
Ken Ogura
?
闯翱滨蝉蝉2013グラフ理论班かつっぱ氏発表
かけざん
かけざん
Ken Ogura
?
NPCALT大会 フーリエ変換の大まかな流れを中1にもわかってもらいたい
人间対笔肠2
人间対笔肠2
Ken Ogura
?
笔颁解体
笔颁解体
Ken Ogura
?
NPCA school festival 2013
ハッキング実演
ハッキング実演
Ken Ogura
?
苍辫肠补文化祭2013丑补肠办颈苍驳
Shio dtm
Shio dtm
Ken Ogura
?
shio's presentation @ Nada School Festival 2013
颁をやりましょう
颁をやりましょう
Ken Ogura
?
Oの右側に穴をあけるとCなんだなぁ みつを
April2013
April2013
Ken Ogura
?
NPC AprilFool's Contest 解説
April2013
April2013
Ken Ogura
?
狈笔颁础辫谤颈濒贵辞辞濒虫27;蝉颁辞苍迟别蝉迟解説
Mage
Mage
Ken Ogura
?
NPCA #02
Imo
Imo
Ken Ogura
?
NPCA #02
Hairetu2
Hairetu2
Ken Ogura
?
NPCA #02
Moon
Moon
Ken Ogura
?
NPCA #02
Jissou
Jissou
Ken Ogura
?
実装をするときは 1.PCから離れて 2.機能を頭でイメージして 3.擬似コードは参考程度でコピペせず 4.if分岐が深くならないように設計して 実装しましょう。
Lunch
Lunch
Ken Ogura
?
闯翱滨讲义:狈笔颁础-顿颈惫2-8解説
Divisor
Divisor
Ken Ogura
?
闯翱滨讲义:狈笔颁础-顿颈惫2-7解説
Amortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 Stack
Ken Ogura
?
Deque with Haskel
Deque with Haskel
Ken Ogura
?
Trianguler
Trianguler
Ken Ogura
?
Npc april fool2014
Npc april fool2014
Ken Ogura
?
辺彩色
辺彩色
Ken Ogura
?
かけざん
かけざん
Ken Ogura
?
人间対笔肠2
人间対笔肠2
Ken Ogura
?
笔颁解体
笔颁解体
Ken Ogura
?
ハッキング実演
ハッキング実演
Ken Ogura
?
Shio dtm
Shio dtm
Ken Ogura
?
颁をやりましょう
颁をやりましょう
Ken Ogura
?
April2013
April2013
Ken Ogura
?
April2013
April2013
Ken Ogura
?
Mage
Mage
Ken Ogura
?
Imo
Imo
Ken Ogura
?
Hairetu2
Hairetu2
Ken Ogura
?
Moon
Moon
Ken Ogura
?
Jissou
Jissou
Ken Ogura
?
Lunch
Lunch
Ken Ogura
?
Divisor
Divisor
Ken Ogura
?
Nazoki
1.
van Emde Boas
Trees ?明日から使えない謎の速い木? catupper
2.
van Emde Boas
Treesとは ● 読み:ばん えんで ぼーす ● 以下「謎木」 ● 集合(set) ● 非常に速い ● あらゆる操作がO(lg lg u) ● 実装が重い
3.
機能要件 ●
MAXIMUM 最大値 ● MINIMUM 最小値 ● MEMBER 有無 ● INSERT 挿入 ● DELETE 削除 ● SUCCESSOR それより大きい最小の要素 ● PREDECESSOR それより小さい最大の要素
4.
平衡二分探索木 ●
葉にビットを立てて有無を表現 ● 親は全子孫のORの結果を保持(Summary) 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 2 3 4 5 6 7
5.
各オーダー ●
MAXIMUM log u ● MINIMUM log u ● MEMBER log u ● INSERT log u ● DELETE log u ● SUCCESSOR log u ● PREDCESSOR log u ● 木の深さに依存
6.
深さを log log u
にしたい
7.
平方兵法 ●
サイズu の親は サイズ√uの子を√u個持つ ● 最小サイズは2 ● 深さはlog log u サイズ256 サイズ4 サイズ4 サイズ4 サイズ4 サイズ2 サイズ2
8.
各ノードのデータ ●
サイズuのノード サイズ U 最大値 max 最小値 min Cluster ● 最大値 Summary 木 木 木 木 木 木 ● 最小値 ● 子へのポインタ ● Summary – 各子に対する そのノードとその子孫のOR値
9.
全体図
10.
各オペレーションの オーダー
11.
MIN,MAX,MEMBER ●
MIN、MAX – 子孫の最大値と最小値を各親が持ってる – O(1) ● MEMBER – 該当箇所へ降りて行って確認するだけ – 処理数は深さ分 – O(log log u)
12.
SUCCESSOR,PREDCESSOR ●
SUCCESSOR – 木を下りながら – minより小さくなったらminを返す – maxより大きくなったら次の兄弟のminを返す – 次の兄弟はsummaryからSUCCESSORで探す – 処理数は深さ分 – O(log log u) ● PREDCESSOR – 逆も然り
13.
INSERT ●
INSERT – 該当場所へ向かって木を降りて行って – minもmaxも未定義だったら両方に入れて summaryを更新して終わる – minより小さかったら値を交換して再帰続行 – maxより大きかったらmaxを更新 – 処理数は深さ分 – O(log log u)
14.
DELETE ●
DELETE – 該当箇所に向かって降りていく – minとmaxが等しかったら削除して終了 – minと等しかったらsummaryのminのminで更新 – maxと等しかったらsummaryのmaxのmaxで更新 – いた木のminとmaxが等しかったらsummary更新 – O(log log u)
15.
超ややこしい
16.
要するに ●
maxとminで要素数が0か1か2以上かを判断 – Summaryの更新が必要かを判断 ● どの要素もいずれかの木のmin – min maxを中心にオペレーションを回せる ● Summaryはminを扱わない – 削除のとき更新が楽になる ● 要素数が2未満ならそこで再帰終了 – 必要メモリが減る
17.
空間计算量 ● 扱う数字の範囲分(u)必要 ● よってO(u) ●
Int型なら32bit ● 大きい
18.
使えない?
19.
工夫 ● オペレーションは空の木の子に行かない ● 空の木はINSERT時以外更新されない ●
INSERT時に動的につくればええやん ● 木の数は要素数(n)を超えない ● よって空間计算量O(n)
20.
やったねたえちゃん 二分ヒープと同じ
21.
まとめ ●
ヒープ並のメモリ使用量でO(log log u)で同じ機能 をサポート ● 実装 – ややこしいオペレーション関数 – ややこしい構造 – 動的ハッシュ – スクリプト言語に向いてない – デバッグ大変でした
22.
まとめ 使えるまでメモリを削減するには
动的ハッシュが必要
23.
結論 実装が重い!
24.
結論 実装できんかった
><
25.
結論 謎木速いんだけど 微妙にバグる
26.
ご清聴ありがとうございました
Download