競プロとゲームをしていません

エイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255)

atcoder.jp

ABCの3完。失敗。

A You should output ARC, though this is ABC

自明。

B Light It Up

その人から最も近い明かりを持った人の距離の最大値。

解説には、可能であれば整数性を崩さずに比較しようと書いてあった。 今回の問題でいうと距離を比較するとき、平方根を取らずに比較しようとのこと。 これは気をつけていなかった。気をつけたい。

C ±1 Operation 1

Xをどの良い数にするか二分探索。

D ±1 Operation 2

解けなかった。

Dの解法

前計算と二分探索が鍵。

fb、bbを前計算する。

  • fb[i]: a[0 i]の値をa[i]にするコスト
  • bb[i]: a[i n-1]の値をa[i]にするコスト

Xi以上の要素の添字をiとする。

次の手順で操作する。Xi以上/未満の要素をa[i]にするコストは前計算しておいた。

  • Xi以上の要素をa[i]にする
  • Xi以上の要素をa[i]からXiにする
  • Xi未満の要素をa[i-1]にする
  • Xi未満の要素をa[i-1]からXiにする

Dの経過

実装してみたが、前計算する値の定義があいまいで、バグらせてしまった。 上の解法の定義は、落ち着いて再定義したもの。

E Lucky Numbers

解いていない。 A _ 1 を決め打ちするそう。 ゴリゴリ実装すれば解けそう。

総括

成績は悪い。

おちつく。 変数の定義をコメントに書く。 定義が素直な値を前計算する。