NISHIO Hirokazu
[Translate]
簡潔ビットベクトル
簡潔データ構造第2回: ビットベクトルに対する簡潔データ構造 - Retrieva TECH BLOG
簡潔データ構造 - Wikipedia
簡潔ビットベクトル(完備辞書) - Mister雑記
rankとselectが定数時間
この特徴自体は
累積和
でOK
値域が0/1であることを前提としてコンパクトに保つことができるのが特徴
元の範囲が十分小さければテーブル引きでO(1)になる
8ビットならサイズ256のテーブル
8ビット毎にそこまでの1の数(rank)を記録しておくと、そこまでもO(1)になる
このテーブル自体をもう一段圧縮する
例えば512ビットごとにrankを記録しておく
各停・急行・特急
の発想
Tweet
Related Pages
各停・急行・特急
累積和
動的拡張接尾辞配列
→
各停・急行・特急
→
スキップリスト
→
数え上げ
×
degwer
×
状態をまとめる
×
dpは全探索の高速化
×
arc059f
×
codefestival_2016_final_f
×
aoj2439
×
探索順の変更
×
大きい順に並べる
×
aoj2333
×
順列は挿入dp
×
bit_dp
×
区間は終点でソート
×
条件の言い換え
×
操作は多いが産物は少ない
×
agc013d
×
線形和への分解
×
演算順序の変更
×
ビット演算を桁ごとに分解
×
部分群
×
操作が可逆で全域→部分群
×
ラグランジュの定理
×
再帰的定義→dp
×
arc037d
×
桁dp
×
aoj0570
×
累積和
×
フェニック木
×
高速フーリエ変換
×
ntt
×
高速ゼータ変換
×
and_と_add_の畳み込み
×
二分累乗
×
agc013e
×
行列木定理
×
全域木の個数
×
lgv公式
×
非交叉経路の個数
×
小さい確率を無視する
×
二項係数の公式
×
経路数
×
45度回転
×
xとyにわける
×
カタラン数
×
包除原理
×
agc005d
×
約数系包除
×
arc064f
→
数え上げテクニック集
→
range_add_point_read
×
セグメント木
×
abc188
×
累積和
×
増分リスト
×
range_add
→
RangeAddは二つのPointAdd
→
結合則
×
累積和
×
左右から累積積
×
一つ除き積
×
sparse_table
→
Disjoint Sparse Table
→
頻度表
×
累積和
×
二次元配列の累積和
→
AGC047A
→
累積和
×
動的計画法
×
ABC179D
×
abc179
→
累積和しながらDP
→
abc177
×
分配法則
×
行列の半分
×
積と和の交換
×
累積和
×
長整数が速い
→
ABC177C
→
累積和
×
atcoder
×
range_add
→
いもす法
→
累積和
×
xとyにわける
→
ABC182
→
累積和
×
単調増加
×
単調非減少
×
単調現象
→
正の数の累積和は単調増加
→
累積和
×
二次元累積話
→
abc106_d
→
累積和
×
いもす法
×
セグメント木
×
abc179
→
ABC179D
→
逆写像テーブル
×
累積和
×
abc089
→
ABC089D
→
区間
×
累積和
×
Static Range Sum
→
任意の区間は0からの区間の差
→
順序のない列は多重集合
×
並び替え→頻度カウント
×
頻度カウントは範囲和
×
累積和
×
二者間の関係からより大きな構造ができる
×
重なるなら同じ長さ→偶数長のブロック
×
帰着する力
→
ARC104
→
頻度カウント
×
範囲和
×
累積和
→
頻度カウントは範囲和
→
累積和
→
DP M
→
累積和
×
bisect
→
abc130_d
→
dp_l
×
累積和
→
DP N
→
itertools.accumulate
×
itertools
×
累積和
×
atcoder
→
Static Range Sum
"
Engineer's way of creating knowledge
" the English version of my book is now available on
[Engineer's way of creating knowledge]
(C)NISHIO Hirokazu / Converted from
[Scrapbox]
at
11/23/2025, 5:57:31 PM
[Edit]