並列二分探索
Union-Find
永続化
部分永続Union-Find
並列二分探索
二分探索
クエリ処理問題
データ構造
クエリ先読み
クエリの平方分割
平方分割
マージテク
AtCoder
unrated公式コン
AtCoder600点
Union-Findのマージ過程を表す木を考える
そのまま覚えたいシンプル設定の中堅以上の典型問題
たくさんの方法がとれる超教育的な問題なので、たくさんの方法で解いてみた! 問題へのリンク 問題概要 の 個の集合がある。 と とを併合する という操作が 回行われた。以下の 個のクエリに答えよ: と が何回目の操作後にはじめて一緒のグループになったか…
永続化
データ構造
Union-Find
部分永続Union-Find
並列二分探索
二分探索
クエリ処理問題
平方分割
クエリの平方分割
最大値の最小化
AtCoder
AGC-D
AtCoder1000点
橙色diff
Union-Findのマージ過程を表す木を考える
高度典型
部分永続 Union-Find 木の練習をした。 問題概要 N 頂点 M 辺の無向グラフがあります。 グラフは連結です。以下の Q 個のクエリに答えよ: 頂点 x, y が与えられ、「x と y を含む z 個の頂点からなる集合に含まれる頂点の番号の最大値」の最小値を求めよ 解…
並列二分探索
Union-Find
二分探索
最大値の最小化
データ構造
クエリ処理問題
Dijkstra法
最短路問題
グラフ
クエリ(グラフ上)
データ構造テク:前処理
AOJ
AtCoder
JOI本選
JOI
Union-Findのマージ過程を表す木を考える
JOI難易度10
高度典型
並列二分探索が想定ではなさそうだけど、並列二分探索法で解いてみました。 問題へのリンク 解法 #include <iostream> #include <vector> #include <queue> #include <map> #include <algorithm> using namespace std; struct UnionFind { vector<int> par, rank, sz; UnionFind(int n) : par(n), rank(n, 0</int></algorithm></map></queue></vector></iostream>…