ABC214

結果

A  \ 01 : 29

B  \ 04 : 23

C  \ 42 : 25

ノーペナ 3完で,パフォは 821,rating変動は -1 830 \to 829でした.

考察

A問題

 1 \leq N \leq 125 なら 4を出力.

 126 \leq N \leq 211 なら 6を出力.

 212 \leq N なら 8を出力.

B問題

 a, b, cは非負整数なので, a+b+c=Sを満たす a, b, cは, 0 \leq a, b, c \leq Sです.

 Sの最大は 100なので, a, b, cで全探索できます.

C問題

 i番目の人の出力結果を T[ i ] で初期化しておきます.

 i番目の人から反時計回りに宝石を渡し続けていき,渡す時刻が最適であれば更新し,そうでなければ i+1番目の人に移ります.

一見二重ループですが,渡す時刻が更新されるのは高々2回(多分?)なので問題ありません.

例えば内側のループで i+j番目の人まで渡す時刻を更新し続けたとすると,外側のループでは i+1番目の人から i+j番目の人までは見る必要はありません.(実装的には,内側のループは1回目で脱出します.)このときの内側のループの更新では,明らかに i番目の外側のループと同じ更新をすることになるためです.

よって,続きは i+j+1番目の人から見ればよく,計算量は線型です.


外側のループで最後に見る人が最適な時刻を持っていた時が最悪で,このときは最後に全ての時刻を更新することになります.(この時が更新回数が最大で2回?)

感想

1か月ぶりのABCでしたが,ほとんど冷えなくてよかったです.

仕事が落ち着いてきたので(?)少しずつ復帰したいです.