1/21 日記

ううううう 今日も結局ぷらにゃ~と言ってしまった

やっぱりぷらにゃはかわいいね

まあ精進も出来てるからいいとしよう

D - Stamp Rally (atcoder.jp)

のこのこに教えてもらったやつ。

とにかくクエリ数が多いから、まとめて処理したい。

まとめて処理するときは要素をソートすると上手くいくことが多いような気もする(?)

すると辺を番号が小さい順に見ていき、辺が結ぶ2頂点をマージしていくとうまい具合に訪れる頂点数zについても評価ができることが分かる。

ここまでくれば後は並列二分探索で解ける。

D - 閉路 (atcoder.jp)

ぷらにゃがオイラーツアーをやっていてかわいかったので自分も履修した。

この問題では辺を訪れた順に配列recに入れていき、そのときの深さも記録しておくといい。クエリで与えられた2頂点a, bについて、その頂点の上にある辺の番号i, jを求め、区間[i, j]の深さの最小値mをセグ木で求める。

a, bの深さをそれぞれda, dbとすれば、

ans=da+db-2*m+1

で閉路の長さを求めることが出来る。

明日はこれ↓も読む

2種類のEuler Tourについて - beet's soil (hatenablog.com)

 

今日は眠いからそろそろ寝かなあ