Closed kemuniku closed 4 days ago
とりあえず前計算O(N)でlen_to_cycleとcycle_lenあたりを計算したい
前計算O(NlogN)かO(Nlog(10^18))かけてi個先の頂点をダブリングするやつが欲しい説もある
あとはサイクルに属しているかのboolとか?
あとはget cycleとか(O(N)でいいので)
サイクルに属しているかのboolは、サイクルまでの距離(属しているならば0)の配列の作成で対応しましょう
i頂点先ってO(N)/O(1)でできるっけ
できる気がしてきた
パスではなく木なのでむりじゃないかなぁになった Level Ancestor Problem がクエリO(logN)なので
ごめんなさいになった
<O(n), O(1)> LAが存在するらしいです(何?)
実用上は遅いらしいのでどうしようねといった感じ 1.全部ダブリングでやる log(10^18)とかまでもつ 2.一部ダブリングでやる log(木の深さ) 3.HL分解する メモリがO(N)になります
そういえばLevel Ancestor Problem って今ない?(HL分解にありましたっけ)
個人的には実装軽いし1でいいいかなの気持ちがあります
2もそんなには重くないと思うぜ!
ヒィン………
頂点AからBに行くことはできるか、できるなら何回の移動で行くことができるか とか
いろいろできるとちょっと便利かもしれない 今のところやりたいこと ・サイクルへの距離(サイクルに含まれる場合は0) ・連結成分に存在するサイクルのサイクル長 ・サイクルを取得 ・x回辺の先へ移動を繰り返した後の頂点(x<=10^18)