rerooting DP、rerooting をする DP、DP with rerooting とかなら別によさそう。
全方位木 DP 自体を指して「rerooting」と言われると気になります。 rerooting は木の根を変える操作(全方位木の中で考えられる)を指していて、全方位木 DP 自体のことを指しているわけではないと思っています。
例を出すよ
DP 以外の文脈で rerooting という言葉が使われているのを挙げてみます。 Euler tour を管理するデータ構造で、根とする頂点を変える操作が rerooting と呼ばれています。
http://web.stanford.edu/class/archive/cs/cs166/cs166.1166/lectures/17/Slides17.pdf
上の資料では、森に関するクエリ処理をするデータ構造を考えています。 対象のクエリは「この辺を追加してね」「この辺を削除してね」で、ループはできないことが保証されています。
森を Euler tour の集合として表現すると、辺の追加や削除に際して、Euler tour の根の頂点を変える操作ができると楽になるようです。 そこで、その操作名が rerooting と呼ばれています。
例おわり。
DP の名前ではなくて、単に、より一般的な操作の名前として捉える方が自然な単語に思えます。
そういえば
splay tree ではアクセスしたノードを根に持っていく操作を splay と呼んでいましたね*1。
そこで思ったんですが、splay tree で splay をする際に DP の更新をするようにすれば、順に頂点をなめることで全方位木 DP で得たいものを得られたりしませんかね? splay は amortized \(O(\log(n))\) time ですが、順になめたときは amortized \(O(\log(\log(n)))\) time という結果もあった気がします(詳細見失いました、嘘かも)。
何にせよ普通に BFS/DFS した方が速そうですが...
追加
twitter.com木 DP で求めた値を、「別の頂点を根だったことにする(この操作を一般に reroot と呼ぶ)」を高速に行うことで、全部の頂点を根としたときの値を O(n) で求めるのが全方位木 DP だと思ってて、全方位木 DP 自体を "reroot" みたいに呼ばれると wikipedia wiki 感がある
— えびちゃん (@rsk0315_h4x) 2022年9月8日
twitter.commod p での乗法の逆元のことだけを指して「逆元」って呼ぶやつと同じくらいむずゅむずゅする
— えびちゃん (@rsk0315_h4x) 2022年9月8日
おわり
もしかしたらえびちゃんの勘違いで、全方位木 DP 自体を指して rerooting と呼んでいる人はいないかもしれません?
お気持ち表明シリーズが好きな人におすすめ(今回の記事より内容ずっしりめです): rsk0315.hatenablog.com
*1:link/cut tree では evert という呼ばれ方もあったような...?