2021年12月30日木曜日

Educational Codeforces Round 120 (Rated for Div. 2)

 Dまで四完。

コンテスト後のツイート

E. Math Test

 解説AC。

 abs(x) = max(x, -x)で変形するという典型だが、この式を使おうという発想が全く出なかったのはまずい。これにより、N人を、予想より高い点を取ったか、低い点を取ったか、で分けてbit 全探索する。

 PyPyだとTLEにも悩まされた。

 bit 全探索して、実際にきちんとスコアを求めているとTLEしてしまう。そうではなくて、プラス側に割り振った場合 x - r点を、マイナス側に割り振った場合 r - x点を取ったとして計算してしまっても最大値は変わらない(xを実際の点、rを予想の点としています)。それを利用すると定数倍改善されてACできる。

 今回は定数倍の改善に過ぎないけど、これを利用して計算量を改善することもあると思うので、後半のテクニックも頭に入れておきたい。


0 件のコメント:

コメントを投稿