E - Ball Coloring
700点問題解説AC
典型っぽさはあったんですが、うまく考察を詰め切れませんでした。
問題:n個のpairがそれぞれどちらかを青、他方を赤に塗る。青の範囲と赤の範囲の長さの積を最小化せよ
解説:
まず、小さいほうを片方に寄せることを考える。
そうでないとき、片方が大きく、もう片方が小さいという形になる。
もし中途半端なときどちらかを維持しつつもう片方を短くできる。
片方を大きくしたとき、もう片方を全部小さいほうにする。
この範囲をどう小さくするかを考える。
範囲の端点をpairの相手に変えるとき、特にこの場合は小さい側を大きいものに置き借る。そうすると、範囲が右側にずれて小さくなるか大きくなる。
これを繰り返して、範囲が最小の長さになるところが最適値である。
上のものと比べて小さいほうを出力する
感想:
範囲の最小化で、端点だけうまくいじるのは典型っぽく思えました。
どちらかに寄せておくのは自分でも考えつけたので良かったです。
だいたいの方針は当たったんですけど、最後の詰めが難しかったです。これは思いつきたかった感。