NISHIO Hirokazu
[Translate]
削除可能集合で不等号条件
要求
削除可能な集合
\{x\}
から不等号で表現された条件
x \ge x_0
を満たすものを列挙したい
例えば
ソート済み配列
なら
二分探索
で不等号条件を満たす境界を対数オーダーで見つけられる
しかし配列からの削除は線形オーダー掛かってしまう
削除が高速な
リンクトリスト
では、ランダムアクセスができないので二分探索できない
解法
フェニック木
を使う
値域は0/1で、値の存在不在を表現
x0以下の範囲に対する和sを対数オーダーで計算し、それから和がs+1になる点を対数オーダーで二分探索すれば良い
削除可能集合
で
不等号条件
問題変換
Tweet
Related Pages
ABC186F
ACL1A
リンクトリスト
問題変換
帰着する力
フェニック木
→
偽コインのパズル
×
二分探索
→
コイン探しの効率
→
数え上げ
×
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
→
数え上げテクニック集
→
atcoderエントリーポイント
×
atcoder失敗リスト
×
二分探索チェックリスト
×
列に対して決まる値→列の区間でdp
×
最大化を二分探索で
×
実数に対する大小判定
×
値域と定義域の交換
×
最小カットに帰着
×
競技プログラミングで解法を思いつくための典型的な考え方
×
問題変換
→
AtCoderEntrypoint
→
問題変換
×
フェニック木
×
動的計画法
×
dp_e
×
abc191
×
値域を定義域にする
×
定義域より値域が狭い関数
→
値域と定義域の交換
→
フェニック木
×
値域を定義域にする
×
クエリがたくさん問題
→
多くのものと大小比較→フェニック木
→
行列の半分
×
和の順序
×
期待値dp
×
dp_j
×
頻度表
×
フェニック木
×
abc194f
×
atcoder202103
→
ABC194
→
最大化
×
二分探索
×
和の比率の最大化
→
最大化を二分探索で
→
問題変換
→
頂点を辺に変換
二次元配列を座標の列にする
黒マスに隣接している白マスを黒にする
符号を揃える
→
連結成分
×
問題変換
→
連結成分ごとに解けば良い
→
最長増加部分列
×
dilworthの定理
×
座標圧縮
×
フェニック木
×
二分探索
×
更新され二分探索できる配列
→
ABC134E
→
クエリの先読み
×
二次元の片方を時間軸にする
×
二項ヒープ
×
フェニック木
×
多くのものと大小比較→フェニック木
×
クエリがたくさん問題
×
abc174
×
mo's_algorithm
→
ABC174F
→
僕のatcoderの学び方(〜水色)
×
僕のatcoderの学び方(〜past上級)
×
abc187
×
past過去問練習202012
×
変形テクニックに名前をつける
×
頂点数18の制約
×
辺が10^5の制約
×
行列の半分
×
二項定理
×
足し算の順序の変更
×
辺が10^5ならダイクストラ使える
×
典型力
×
問題変換
×
問題分割
×
認知の解像度
×
概念のハンドル
×
atcoder失敗リスト
×
AtCoderEntrypoint
×
アルゴリズム実技検定
×
第五回_アルゴリズム実技検定
×
最小費用流に帰着
×
帰着訓練
→
僕のatcoderの学び方(〜青)
→
chokudai
×
動的計画法
×
問題変換
→
同じ状態をまとめるのが動的計画法の本質
→
二次元の片方を時間軸にする
×
フェニック木
×
ABC186F
×
二次元累積和
×
長方形クエリ
→
長方形区間カウント
→
二分探索
×
頻度表
×
ナップサック
×
条件付き最大値を対数オーダーで求める
×
最大クリーク
×
最大独立集合
→
半分全列挙
→
根つき木に変換
×
最小共通祖先
×
問題変換
→
グラフが木なので根つき木に変換
→
ダブリング
×
二分探索
×
past2m
×
最小共通祖先
→
ダブリング→二分探索
→
二分探索
×
逆関数
×
past2m
→
単調増加なので二分探索で逆関数できる
→
abc174
×
二分探索
×
最大値の最小化
×
値域と定義域の交換
×
二分探索チェックリスト
→
ABC174E
→
multiset
×
ABC170 E
×
heapq
×
heapq+dict
×
bisect
×
フェニック木
×
bit
×
座標圧縮
×
平衡二分木
×
RBST
×
データ構造
→
Pythonでmultiset
→
配列
×
リンクトリスト
×
フェニック木
×
セグメント木
×
平衡二分木
×
帰着する力
→
配列もリストも都合が悪い
→
和の比率の最大化
×
二分探索
×
誤差を認める問題→二分探索
×
第一回_アルゴリズム実技検定
→
PAST1M
→
データ構造
×
秋葉_拓哉
×
遅延伝搬セグメント木
×
heapq
×
フェニック木
→
セグメント木
→
arc110
×
操作の結果の数え上げ
×
問題変換
→
操作の結果の数え上げ→構成可能判定
→
帰着する力
×
agc022c
×
ゴールから逆算
×
2回やっても意味がない
×
最適な操作の順番が一位
×
コストが2^k→辞書順最小
×
1〜xで足りて1〜x-1で足りない時xは必須
×
問題変換
×
問題分割
×
状態情報の圧縮
→
典型力
→
オーバーフロー罠
×
フェニック木
×
longest_common_substring
×
編集距離
→
ABC185
→
codefestival_2016_final_c
×
問題変換
→
辺を頂点にして二部グラフ
→
aclpc_l
×
PAST4K
×
フェニック木
→
転倒数
→
第四回_アルゴリズム実技検定
×
転倒数
×
aclpc_l
×
フェニック木
→
PAST4K
→
atcoder_library_practice_contest
×
フェニック木
→
ACLPC B
→
時間軸反転
×
問題変換
→
塗りの時間軸反転
→
第三回_アルゴリズム実技検定
×
リンクトリスト
→
PAST3K
→
コスト0の遷移を付け加える
×
問題変換
→
ゴールを一つにする
→
小さな定数に注目
×
問題変換
→
境界の位置を全探索
→
最大化を二分探索で
×
最小値の最大化
×
max
×
不等号
×
and
×
問題変換
→
maxの不等号は不等号のand
→
比率
×
二分探索
×
濃度の最大化
→
和の比率の最大化
→
双方向リンクトリスト
×
削除しかしないリスト
×
リンクトリスト
→
ゼロフィルのリンクトリスト
→
問題変換
×
全探索
→
広い判定で全探索
→
問題変換
×
包除原理
→
余事象を引く
→
atcoder
×
atcoder_library_practice_contest
×
numba
×
cython
×
フェニック木
×
セグメント木
×
遅延伝搬セグメント木
×
接尾辞配列
×
lcp_array
×
pythonでの累乗・逆数・階乗・階乗逆数・組み合わせ
×
中国剰余定理
×
floor_sum
×
np.convolve
×
two_snuke
×
長整数が速い
×
dsu
×
unionfind
×
最大流
×
最小費用流
×
scc
×
2-sat
→
AtCoder Library
→
二分探索
×
abc174
→
二分探索チェックリスト
→
wikipedia
×
二分探索
×
multiprocessing
→
時間のかかる原因を二分探索
→
フェニック木
→
DP Q
→
座標圧縮
×
setはメモリ食い
×
numba
×
numbaに複雑な型を渡す
×
numba_bisect
×
numpy.unique
×
長方形グラフ探索
×
番兵
×
numba_np.concatenate
×
csr_matrix
×
リンクトリスト
×
mprof
×
atcoder
→
ABC168 F
→
ABC170 E
×
Pythonでmultiset
×
平衡二分木
×
フェニック木
×
numba
→
RBST
→
abc170
×
heapq
×
ヒープキュー
×
セグメント木
×
フェニック木
×
座標圧縮
×
標準入出力でtle
→
ABC170 E
→
numpy.searchsorted
×
二分探索
×
bisect
×
numpy
→
numpy.unique
→
二分探索
×
atcoder
→
bisect
"
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, 11:49:35 AM
[Edit]