コンテスト中AC:A〜C
戦績が良くなかったので、コンテスト後に解けたDだけ書きます。
D - Strange Lunchbox
購入したお弁当の個数の情報と、その時のたこ焼き及びたい焼きの個数の情報が欲しいので、以下のDPを考えます。
種類目までのお弁当のうち
個のお弁当を購入して
個のたこ焼きを手に入れた場合のたい焼きの個数の最大値
たこ焼きの個数は、最大でも90000個手に入りますが、の制約上300個までを考慮すればよいので、301個以上手に入る場合は300個手に入ったことにしても問題ありません。
初期値は、です。次に、
からの状態遷移を考えます。
番目のお弁当を購入しない場合、状態に変化はありません。よって、
番目のお弁当を購入する場合、お弁当の個数は1個増えて、たこ焼きの個数は
個増えます。よって、
但し、が状態として存在する時のみ遷移可能であり、また、
の時は
とすることに留意します。
答えはについて、
が成り立つような最小の
です。
計算量は、なので、最大でも
程度となります。