Indeedなう(オープンコンテストB):D - Game on a Grid
問題
https://atcoder.jp/contests/indeednow-finalb-open/tasks/indeednow_2015_finalb_d
考え方
よりなるべく多くの点 に訪問することが最適であることがわかる。つまり全頂点に訪問する。また最大値を最小値と読み替えると、グリッドグラフ上で最小全域木を作ることができる。
各頂点に初めて訪問する場合に を点を得ることができる。全頂点には必ず訪問するので 点は得ることができる。ま点 から または に訪問するときの移動ボーナスをグリッドグラフの辺として最小全域木を構築すると、最小全域木の和の最小値が求めたい解である。
よって最小全域木をプリム法またはクラスカル法で求めれば良い。
Submission #4088911 - Indeedなう(オープンコンテストB)
どこに着目して考察するべきだったか
最大値⇔最小値の読み替えで最小全域木の和を求めれば良いことが分かる。また移動ボーナスと各頂点への訪問点は独立して考えて良い。
何がバグっていたか
移動ボーナスと初めて訪問するときの点は独立して考えてよい。というか独立して考える必要があった。
得た知見(典型ポイント)
- 最小値を求めよ⇔最大値を求めよ
- 変数を独立して考える