spdblog

141字以上の事柄

ARC064

AtCoderリニューアル後、初のARC参加となった。前回のプロコン参加が11/12のAGC007という事で、実に3週間ぶりである。

開始直前にgnupackのCygWinが動かないというトラブルが発生。()PC新調直後でWindowsgcc,g++も入っていなかったため、急遽ノートPCで参戦した。

エラー自体はこちらの記事に紹介されているものが近かった。コンテスト終了後にPCを再起動したら正常に動いてしまったので、詳細な原因は不明。

nekonenene.hatenablog.com

C

隣り合う2つの和が重要そうだったので、先に和を算出してからそれぞれxと比較して、xより大きければ右隣も合わせて減らす……という手法を採った。

これでいけると確信したもののWA。しばらく考え直したところ、和の要素数n-1のまま動かすと

3 2
3 0 3

のようなケースで落ちることが分かったので、適当に前後を増やす(元の数列の前後に"0"を追加する)とACになった。

D

各文字が登場する距離(2以上)の和("abcabcbca"であればaの距離は2+4、bの距離は2、cの距離は2)の偶奇から求められそう?と思ったものの、入力例3"abcab"の時点で通らない事に気づき諦めた。

終了後解説を読んで愕然とした。終了状態に着目すれば先頭,末端文字の比較と文字列数の偶奇を調べるだけで済んだという。もう少し紙面上で考えるべきだったと後悔した。

E

パッと見でバリア間の最短距離を求めるのが難しそうと断念。

これも解説を読んで愕然とした。(当たり前といえばそうだが)中心を結べば何の事はなかった。ダイクストラ法の実装が怪しいが、十分歯が立つはずの問題だったっぽい。

結果

Aで2WAした上での1完。レート変動は1214->1209(-5)となった。終了後は1200を割る覚悟だったため、意外にも減らない印象を受けた。次回もARCで頑張りたい。

問題の傾向にはどことなくAGCに近いテクニカルな印象を受けた。writer(問題作者)さんがAGCのwriterとして何度か見覚えのある方だったので、そういう事なのかもしれない。

反省点

  • しっかり紙面で考える
  • 操作の終了状態に着目する