G - Avoid Straight Line Editorial
by
suisen
頂点対 \((i, j)\ (i\lt j)\) であって、距離がちょうど \(d\) であるようなものの個数を \(\mathsf{freq} (d)\) とします。
このとき、補集合を考えることで答えは次のように表せます。
\[\binom{n}{3} - \sum _ {d = 2} ^ {n - 1} (d - 1) \times \mathsf{freq} (d).\]
\(\mathsf{freq} (2), \ldots, \mathsf{freq}(n - 1)\) の列挙は重心分解と FFT を用いた畳み込みで \(O(n (\log n) ^ 2)\) 時間で計算できることが知られています。(参考: https://judge.yosupo.jp/problem/frequency_table_of_tree_distance)
従って、本問題を \(O(n (\log n) ^ 2)\) 時間で解くことができました。
posted:
last update:
