ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

AOJ 2298 - Starting Line

問題
解法

解法

O(L)が間に合うことに注目すると、任意の距離1の区間[X-1,X]区間それぞれについて、速度uで走るかvで走るかを決めていけば良いです。
にんじんを食べるタイミングは貪欲に決めることができ、

  • 今スピードアップしてなければ拾ったタイミングで食べる

  • 今スピードアップしてれば、とりあえずキープをしておく

  • 今スピードアップしていてかつ、キープが満タンであれば、仕方なく食べる

の3択になります。
今いくつのにんじんをキープしているか、そしてスピードアップをしているならば、それが終わるのは距離がいくつの時か、を更新しながら、速度uで走る距離とvで走る距離を調べていけば、その距離をそれぞれの速度で割ったものの和によって答えが求まります。

感想

貪欲っぽい、というところからいろいろ迷走した結果とてつもない時間がかかってしまいました…
丁寧に調べることと、制約に注目することを忘れないようにしたいですね。