ABC154-D Dice in Line

初めて茶Diffを解いた記念。

提出コード:

https://atcoder.jp/contests/abc154/submissions/10555998

 

考えたこと

  • 問題文、制約を読む(3分)

期待値か、とりあえず定義に従って期待値を返す関数を作ろう!→関数を実装(2分)

NとKがまあまあ大きいから、愚直に二重ループじゃ駄目そうだなあ……どうしよう(3分うなる)

  • 自分の関数を眺める(2分)

期待値は(1+p)/2→期待値には加法性があるから、結局部分数列の和の最大化問題だ!

どうやったらいいだろう……そういえば累積和を使えばできそうだなあ……?

  • 累積和を書く(10分弱)

まあこんな感じでいいかな?数列の和の最大を求めてからkを足して2で割ることに注意して……Submit!

  • バグる(10分)

サンプル通ったからまあまあ合ってると思うんだけど……→出力部分をよく読むと「誤差10^-6までならOK」って書いてある→ってことは小数点以下の桁数が足りてないのかな→直してSubmit!→AC!