beet's soil

競プロのことなど

パスにパスがぶら下がっているクエリ on TopTree

日本語崩壊

Clusterの持ち物
  • 向きに関係ない情報 all
  • 向きが関係する情報
    • 正方向 pre
    • 負方向 suf
  • Rakeで突き刺さってきている情報 chd
Rake

必ずあとでCompressされる側が一番左になるようにしておく 
Rake(Cluster x,Cluster y)のxの方が後でCompressされる

x.suf はCompressで使うかもしれないのでいじらない
y.pre をx.chdにくっつける
Rakeは二分木なのでy.chdに他のpreがくっついてることがある よってy.chdもx.chdにくっつける

Compress

allはよしなにやる

pre, suf はこう
f:id:beet_aizu:20200402141909p:plain
f:id:beet_aizu:20200402141920p:plain

chdは消す

iPadApple Pencilが欲しくなってきたぜ

両端

両端は上にあるのでget_subtree(a,b)とget_subtree(b,a)をくっつける

細かい話

複数の変数をまとめると意味論が爆発して死ぬ
デバッグが異常に難しいので定数倍改善は動くのを確認してからの方がいい