AtCoder Beginner Contest 282 E問題 Choose Two and Eat One
問題
提出解答
問題の概要
個の整数が書かれたボールが箱に入っており, 番目のボールには整数 が書かれている.
次の操作を 回行う.
- 箱にあるボールから つのボールを取り出す.
- 取り出した つのボールに書かれている整数を としたとき, 点獲得する.
- 取り出した つのボールのうち, 一方を食べ, 他方を箱に戻す.
得られる得点の最大値を求めよ.
制約
解法
に対して, について, 以下は同値になる.
- (a) 順番及び食べるボールを適切に選ぶことによって, の任意の整数 において, 番目のボールと 番目のボールをペアで選び出すことができる.
- (b) として, は木になる.
証明
これにより, (a) が成り立つような手順を構成できた.
よって, この問題は次のような問題に帰着された. ただし, とする.
とする重み付き完全グラフ が与えられる. なお, 頂点 と頂点 を結ぶ辺の重みは である. の全域部分木のうち, 辺の重みの総和の最大値を求めよ.
この問題は正しく最小全域木問題と等価である. よって, この重み付き完全グラフにおいて, Prim 法や Kruskal を利用することによって, 計算量 時間で解くことができる.