M - To The LCA
Editorial
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 点
問題文
頂点の根付き木があります。頂点には の番号がつけられています。この木の根は頂点 であり、頂点 の親は頂点 です。また、頂点 には数 が書かれています。
個の駒があります。駒には の番号がつけられています。駒 は現時点では頂点 に置かれています。
あなたは、次の操作を 回以上の任意の回数行えます。
- 二つの駒 と を選ぶ。駒 が置かれている頂点を とし、駒 が置かれている頂点を とする。駒 を、頂点 と の最近共通祖先に移動させる。
全ての操作を終えた後に駒 が置かれている頂点を とします。このときのスコアは で定められます。スコアの最大値を求めてください。
最近共通祖先 (LCA) とは
頂点 と の最近共通祖先とは、両方の祖先であるような頂点のうち、根 (この問題では頂点 ) からの距離が最も大きい頂点のことです。二つの頂点の最近共通祖先は常に一つに定まります。
なお、頂点 の祖先とは、頂点 から始めて親の頂点に移動することを繰り返して辿り着けるような頂点 ( 自身を含む) のことです。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
スコアの最大値を 行に出力せよ。
入力例 1Copy
Copy
5 1 1 3 3 6 2 9 1 7 3 2 4 5
出力例 1Copy
Copy
24
次のように操作するのが最善です。
- 駒 として駒 を選び、駒 として駒 を選ぶ。駒 が頂点 から頂点 に移動する。
- 駒 として駒 を選び、駒 として駒 を選ぶ。駒 が頂点 から頂点 に移動する。
- 駒 として駒 を選び、駒 として駒 を選ぶ。駒 が頂点 から頂点 に移動する。
最終的に となるので、スコアは です。
入力例 2Copy
Copy
3 1 1 1 100 100 4 2 3 3 2
出力例 2Copy
Copy
400
一度も操作しないのが最善です。二つ以上の駒が同じ頂点に置かれていることもあることに注意してください。
入力例 3Copy
Copy
6 1 2 2 3 4 1 5 6 2 8 8 8 4 1 5 6 2 3 1 3
出力例 3Copy
Copy
40
原案: Forested