yokoyama-midoriのblog

マージ過程を表す木

マージ過程を表す木を用いる典型テクを学んだので紹介する。 マージ過程を表す木とは 頂点$0,\dots,N-1$からなる$N$頂点$0$辺のグラフについて、指定された頂点のペアに辺を貼り連結成分をマージしていく操作を考える。各時点での連結成分に関するなんらかの値を求めたい場合や、ある頂点のペアが初めて連結になった時点での何らかの情報を得たい場合マージ過程を表す木が役に立つ可能性がある。マージ...

yukicoder No.416 旅行会社

問題概要 $N$頂点$M$辺のグラフが与えられる。辺の削除が$Q$回行われる。頂点$2,\dots,N$について頂点$1$と非連結になったタイミングを答えよ。 解法 後ろから考えれば辺の追加を行っていき、頂点$1$と連結になったタイミングを答える問題に帰着できる。これは他の解説通りマージテクにより可能で、時間計算量$\Theta(N \log N)$になる。しかし素集合の要素の列挙と併合を...

【精進】ABC295 E - Kth Number

公式解説の言い換えが思いつかなかったので遠回り 問題 E - Kth Number $0$以上$M$以下の整数からなる長さ$N$の数列$A$が与えられる。$A_i = 0$を満たすそれぞれの$i$について$、A_i$を$1$以上$M$以下の一様ランダムに選んだ整数で書き換える。その後$A$を昇順にソートしたとき、$A_K$の期待値を求めよ。 $N,M\le 2000$ 解法 数列の添字は0...

【精進】ABC288 E - Wish List

どの$C$を使えるかが問題 問題 E - Wish List $1,\dots,N$の番号がついた$N$個の商品がありそのうち$M$個の商品がほしい。商品$i$を買うためには、その時点で購入されていない商品の番号のうち$i$が小さい順に$j$番目だとすると $A_i+C_j$を払う必要がある。欲しい商品を全て買うために払う金額の最小値を求めよ。$N\le 5000$ 解法 見た目的にも...

【精進】ABC228 F - Stamp Game

いろいろ方法がある 問題概要 $H\times W$のマス目に正整数が書かれている。高橋くんが$H_1\times W_1$の領域を選び、それを見て青木くんが$H_2\times W_2$の領域を選ぶ。このときのスコアを高橋くんが選び、青木くんが選んでないマス目に書かれた整数の和とする。高橋くんがスコアを最大に、青木くんがスコアを最小にするような戦略を選ぶときスコアはいくらになるか?$H,...

【精進】ARC099 E - Independence

補グラフ、2部グラフ、DP 問題概要 E - Independence $N$頂点$M$辺の無向グラフがある。グラフを2つの完全グラフに分けることができるかを判定し、できるなら両グラフの辺の数の和の最小値を求めよ。 解法 補グラフを考える。頂点を$S,T=[N]\setminus S$に分けるとき、辺は$S,T$間にのみ張られている必要がある。従って補グラフが2部グラフでないなら不可能であ...