D問題(速報)
・なにこれ ->
D: 夕食 - Japan Alumni Group Summer Camp 2014 Day 4 | AtCoder
・解法の一例
自炊定数をとして初期自炊力(自炊のうまさ)をQとしておく。
日数は0-indexedとしておく。
日目の食堂幸福度をとしておく。
さて、個食堂から選ぶこととする。
このとき 自炊幸福度を(足す分だけ)考えると とできる。
日目()に食堂にいったとして
日目の幸福度は,
先ほどの自炊幸福度で差し引かなかった食堂に行ったことから来る幸福度の損失を含めて考えることで、
日目の時にできる幸福度は と解釈できる。
(それまでに回自炊をした。つまり、これ以降で自炊は 回行うので,先程足した分から引く必要がある。
この評価で計算してみると
Sumの外に出せるものを出すと
(最後の変形は別解から考えると出てくる式なのでイコールで結んでおいた。 以後の議論では必要ない変形)となる。
足し算の中身がのみに依存している形になるので、これの最大値は
を定義してこれの大きい方から個選択すれば良い。
しかもにも依存しないのでを始めに定義しておいて、の値を0から順番に試していき最大値を出せば良い。
したがってネックはソートのみ。時間計算量でできる