NISHIO Hirokazu
[Translate]
abc120_d
https://atcoder.jp/contests/abc120/tasks/abc120_d
考えたこと
行き来できないペアの数を数える
余事象を引く
行き来できる島=連結
連結成分のサイズがわかれば
三角数
時間軸反転
して考えると1本ずつ辺を増やして行く構図
UnionFind
で連結成分を求めたらいい?
連結成分のサイズを求める処理で各頂点のrootを確かめると間に合わないのでroot→sizeの形で持つ必要がある
公式解説
OK
UnionFindでsizeがO(1)と書いてるけど、そういう実装であるとは限らないのでは?
Tweet
Related Pages
UnionFind
三角数
余事象を引く
→
ダブリング
×
連結成分ごとに解けば良い
×
UnionFind
×
辺を頂点にして二部グラフ
×
二部グラフの最大マッチング
×
根つき木に変換
×
辺の深さ優先探索
×
一つ構築せよ問題
×
端から埋める
×
floor_sum
→
ARC111
→
rangeaddは二つのpointadd
×
abc183
×
座標圧縮
×
いもす法
×
イベントソート
×
特殊な制約
×
時間軸反転
×
heapq+dict
×
AGC044A
→
ABC188
→
オイラー路
×
グリッド上の幅優先探索
×
ハンガリアン法
×
二部グラフの最大マッチング
×
二重辺連結成分分解
×
二重頂点連結成分分解
×
全点対間最短路
×
単一始点最短路
×
強連結成分分解
×
彩色数
×
最大クリーク
×
最大流
×
最大独立集合
×
最小全域有向木
×
最小全域木
×
最小流量制限付き最大流
×
最小費用流
×
橋/関節点
×
bit
×
binary-trie
×
convex-hull-trick-add-monotone
×
li-chao-tree
×
link-cut木_部分木クエリ
×
link-cut木
×
ウェーブレット行列
×
スパーステーブル
×
スライド区間の昇順k個の和
×
セグメント木
×
トライ木
×
マージ可能ヒープ
×
列の平方分割
×
平衡二分探索木
×
永続配列
×
素集合データ構造
×
UnionFind
×
ローリングハッシュ
×
接尾辞配列
×
最長共通接頭辞
×
最長回文
×
回文
×
複数文字列検索
×
hl分解
×
全方位木dp
×
最小共通祖先
×
木の直径
×
木の重心分解
×
根付き木に変換
×
mod-pow
×
オイラーのφ関数
×
オイラーのφ関数テーブル
×
ベル数
×
ラグランジュ補間
×
二項係数
×
二項係数テーブル
×
任意mod畳み込み
×
分割数
×
分割数テーブル
×
商列挙
×
形式的冪級数
×
形式的べき級数
×
拡張ユークリッドの互除法
×
拡張ユークリッド互除法
×
第2種スターリング数
×
約数列挙
×
素因数分解
×
素数テーブル
×
素数判定
×
組合せ
×
行列演算
×
進数変換
×
階乗
×
離散対数問題
×
高速フーリエ変換
×
divide-and-conquer-optimization
×
monotone-minima
×
スライド最小値
×
一次元累積和
×
二次元累積和
×
個数制限付きナップサック
×
最大長方形
×
最適二分探索木
×
最長増加部分列
×
ダブリング
×
包除原理
×
燃やす埋める問題
×
燃やす埋める
×
牛ゲー
×
mo’s_algorithm
×
offline-dynamic-connectivity
×
座標圧縮
×
アルゴリズム
→
Luzhiled's memo
→
帰着する力
×
小さい制約の問題
×
nが8前後の制約
×
nが10~20前後の制約
×
n_が_30~40前後の制約
×
n_が_50前後の制約
×
n_が_300~500前後の制約
×
n_が_1000_前後の制約
×
小さな定数に注目
×
変数を一つ固定する
×
3つのものの真ん中を固定
×
行列の半分
×
xとyにわける
×
操作の不変量に注目
×
偶奇に注目
×
偶奇で場合わけ
×
操作の順番によらない
×
時間軸反転
×
元に戻せる操作
×
左右から累積積
×
等差数列の加算は差に注目
×
区間反転の合成はxor
×
grundy数
×
余事象を引く
×
k番目の数を二分探索
×
xorは繰り上がりのない足し算
×
xorは桁ごとに分割可能
×
45度回転
×
差の最小化は中央値
×
代表的なグラフで考察
×
木は二部グラフ
×
木の直径
×
最大化を二分探索で
×
選択肢が少ない方から貪欲
×
二次元座標を二部グラフにする
×
順序を有向グラフにする
×
凸関数の極値は三分探索
×
単調増加ならしゃくとり法
×
等比数列は剰余に注目
×
n進数は剰余に注目
×
括弧列は上り下り
×
競技プログラミングで解法を思いつくための典型的な考え方
×
keyence2020_d
×
abc152_f
×
agc026_c
×
arc060_a
×
joi2008ho_c
×
abc034d
×
abc138e
×
abc023d
→
競技プログラミングで解法を思いつくための典型的な考え方
→
僕のatcoderの学び方(〜緑)
×
僕のatcoderの学び方(〜青)
×
ARC106
×
気づきの言語化
×
結晶化
×
変形テクニックに名前をつける
×
行列の半分
×
二項定理
×
足し算の順序の変更
×
概念のハンドル
×
テストできるスニペットライブラリ
×
UnionFind
×
mod_pでの組み合わせ
×
educational_dp_contest
×
動的計画法
×
atcoder_library_practice_contest
×
AtCoder Library
×
帰着する力
×
帰着訓練
→
僕のatcoderの学び方(〜水色)
→
アルゴリズム
×
蟻本
×
区間スケジューリング
×
二分探索木
×
UnionFind
×
最短路問題
×
最小全域木
×
ユークリッドの互除法
×
ニ分探索
×
しゃくとり法
×
半分全列挙
×
座標圧縮
×
セグメント木
×
binary_lndexed_tree
×
バケット法
×
平方分割
×
ビットdp
×
bitdp
×
行列累乗
×
繰り返し二乗法
×
最大流
×
最小カット
×
二部マッチング
×
一般マッチング
×
マッチング
×
辺カバー
×
安定集合
×
点カバー
×
最小費用流
×
凸包
×
grundy数
×
強連結成分分解
×
2-sat
×
lca
×
ダブリング
×
接尾辞配列
×
sparse_table
×
rmq
×
atcoder
→
プログラミングコンテストチャレンジブック
→
第四回_アルゴリズム実技検定
×
時間軸反転
×
操作を逆順で考える
×
塗りの時間軸反転
×
木の上のパスはlcaで分割できる
×
頂点を塗るのか辺を塗るのか
×
木の辺は根以外の頂点と対応する
→
PAST4M
→
最小全域木
×
UnionFind
×
線形時間ソート
→
クラスカル法
→
abc186
×
余事象を引く
×
削除可能集合で不等号条件
×
acl1a
×
フェニック木
×
長方形区間カウント
→
ABC186F
→
余事象を引く
×
数え上げ
→
Xであるものの数え上げ→Xならば?
→
操作の結果が同一になる条件
×
Xであるものの数え上げ→Xならば?
×
余事象を引く
×
頻度→三角数
×
列の範囲更新
×
操作の結果の数え上げ
→
AGC019B
→
時間軸反転
×
桁dp
×
agc044
×
atcoder
→
AGC044A
→
操作の順番によらない
×
三角数
×
値域と定義域の交換
→
ARC109
→
abc177c
×
UnionFind
×
エラトステネスの篩
×
高速素因数分解
×
素因数分解
→
ABC177
→
UnionFind
×
行列の半分
×
一列まとめて処理
×
二項定理
×
足し算の順序の変更
×
積と和の交換
×
mod_pでの逆元
×
mod_pでの組み合わせ
×
境界値テスト
×
区間スケジューリング
→
ARC106
→
atcoder_library_practice_contest
×
UnionFind
→
ACLPC A
→
時間軸反転
×
問題変換
→
塗りの時間軸反転
→
disjoint-set
×
素集合
×
disjoint_sets
×
UnionFind
→
素集合データ構造
→
余事象を引く
×
包除原理
→
余事象を考える
→
積と和の交換
×
三角数
×
xとyにわける
→
ARC107
→
余事象を引く
×
二項係数テーブル
×
差の和は和の差
→
abc151_e
→
頻度表
×
三角数
→
頻度→三角数
→
UnionFind
×
公式解説ok
×
abc157
→
ABC157D
→
UnionFind
×
arc032
→
ARC032B
→
UnionFind
→
二部グラフ判定
DSU
→
UnionFind
×
辺を頂点にして二部グラフ
→
codefestival_2016_final_C
→
頻度→三角数
×
三角数
×
多重集合
×
multiset
→
頻度表
→
地図読み込み時に番兵をつける
×
数列を有理式にする
×
ラグランジュ補間
×
対称性で次元削減
×
余事象を引く
×
未ac
×
足し算の順序を変える
×
xごとのf(x,y)の和はyごとのf(x,y)の和
×
最大値の期待値
×
順位統計量
×
maxの不等号は不等号のand
×
0,1
→
HHKB2020
→
動的計画法
×
余事象を引く
→
ABC172E
→
atcoder
×
atcoder_library_practice_contest
×
numba
×
cython
×
フェニック木
×
セグメント木
×
遅延伝搬セグメント木
×
接尾辞配列
×
lcp_array
×
pythonでの累乗・逆数・階乗・階乗逆数・組み合わせ
×
中国剰余定理
×
floor_sum
×
np.convolve
×
two_snuke
×
長整数が速い
×
DSU
×
UnionFind
×
最大流
×
最小費用流
×
scc
×
2-sat
→
AtCoder Library
→
AtCoder Library
×
遅延伝搬セグメント木
×
連結成分
×
UnionFind
×
セグメント木
×
動的計画法
×
集めるdp
×
範囲縮約
×
平方分割
×
畳み込み
×
包除原理
→
ACL Beginner Contest
→
数え上げ
×
三角数
×
正規表現
→
dwango2015_prelims_2
→
時間軸反転
→
DP K
→
時間軸反転
×
AGC044A
×
経路に依存しない
→
問題文の順にやらない
"
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:32:48 PM
[Edit]