解説
現在の多角形において、書かれた整数が最小の頂点を選び、その頂点と両隣の頂点からなる三角形を取り除くことを繰り返す貪欲法が正当である。
この操作で選んだ頂点を 、両隣の頂点を とすると、 なので、取り除く三角形の中央値は である。
したがって、頂点を の昇順に処理し、各頂点の両隣を双方向リストで管理すればよい。得られた 個の中央値を昇順に並べたものが答えである。
以上より、 でこの問題を解くことができる。
証明
現在の多角形で書かれた整数が最小の頂点を とする。任意の三角形分割に対し、 を端点とする対角線をすべて取り除くように対角線を変更することを考える。
1 回の変更では、頂点 からなる四角形の対角線 を に変更する。
としてよい。このとき、変更前の つの中央値を昇順に並べると
であり、変更後は
である。ただし、 は つの整数の中央値を表す。
は最小値なので、変更後の各中央値は変更前の対応する中央値以上である。したがって、全体の数列 も辞書順で小さくならない。
この変更を繰り返すことで、 を端点とする対角線をすべて取り除ける。よって、 と両隣の頂点からなる三角形を含む最適な三角形分割が存在する。
この三角形の中央値は固定され、残りの多角形の三角形分割は独立に選べる。したがって、残りの多角形でも同様に最小値の頂点を選べばよい。
以上より、この貪欲法で正しい解を得ることができます。
ユーザー解説
ユーザー解説を書くユーザー解説はまだありません。