AtCoder Grand Contest 001:C - Shorten Diameter
問題
解法
「直径が K より外の頂点を削除する」と「直径が K 以内の頂点を残す」のは同じなので,後者に置き換えて,残す頂点を最大化することを考える.
K が偶数の場合,各頂点から K / 2 以内の頂点を残すことになるので,全ての頂点について残す頂点の数を計算する.
K が奇数の場合,各辺の両端の頂点から (K - 1) / 2 以内の頂点を残すことになるので,すべての辺について残す頂点の数を計算する.
答えは N - (残す頂点の数) になる.O(N^2).
解答
頂点を削除するという方針で考えていて詰まってしまっていた.同値で置き換えるのも重要だと思った.