AtCoder Regular Contest 139 参加記

2022/4/24に開催されたAtCoder Regular Contest 139に参加しました。

atcoder.jp

土曜のABCでは、いろいろやらかしてしまい2完爆死という結果でした。

今回は少しでも昨日の負けを取り戻せるようにという気持ちで臨むこととしました。

今回の結果

で、今回はなんとか1完を確保したという結果となりましたとさ。

ARC139結果
ARC139結果

しかしながら、今回はB問題がやたらと難しかったのか、1完でも水パフォが出てくれて、昨日の負けを少し取り戻すことが出来ました。

振り返り

Bは途中であきらめてしまいました。

ARC139提出結果
ARC139提出結果

A問題

A - Trailing Zeros

とりあえず、整数を2進表記したときの末尾の0の個数が重要になるので、シフト演算処理で考えれば単純化できるかという印象でした。

とりあえず、サンプル4の入力について、ノートに愚直に計算結果を書いていった結果、見えてきた解法は以下の通り。

  • 初期値 A_1を、 1 T_1ビット分左シフトした値とする。

  • T_{i+1} = T_iの場合、A_iT_iビット分右シフトし、2を足した後、T_iビット分左シフトした値をA_{i+1}とする。

  • T_{i+1} \lt T_iの場合、A_i1T_iビット分左シフトした値を足した値をA_{i+1}とする。

  • T_{i+1} \gt T_iの場合、A_iT_iビット分右シフトし、シフト後の値の末尾が0の場合1を、末尾が1の場合2を足す。その後、T_iビット分左シフトした値をA_{i+1}とする。

とりあえず、この実装でなんとかサンプルが通せたので、提出してみたらACが取れましたとさ。

25分5秒で1完。とりあえず0完は免れたので、まあヨシとします。

提出コード

https://atcoder.jp/contests/arc139/submissions/31238366

B問題

B - Make N

なんかちょっと複雑な問題だなーという印象でしたが、順位表を確認してみるとこれが全然解かれていない。

こりゃ見た目以上に難易度が高そうな問題ということで、考察する意欲もだいぶ落ちてしまいた。。

一応、時間はあったので考えては見たものの、まともな解法は思いつかずのまま。順位表を繰り返し更新しては、順位が落ちてないことを確認する作業を繰り返し、時間切れを迎える事となりましたとさ。

C問題

C - One Three Nine

ワンチャンあるかと、チラ見するものの、結局何もわからず。

D問題

D - Priority Queue 2

問題すら見れておりません。

E問題

E - Wazir

問題すら見れておりません。

F問題

F - Many Xor Optimization Problems

問題すら見れておりません。

これまでの実績

今回爆死したら3桁落ちというところでしたが、なんとか踏みとどまる事が出来たというところです。

コンテスト実績
コンテスト実績

総括

今回は1完でも想定外のパフォが出てくれたので、多少お得な回だったかもしれません。

今週は、ABC、AHC、ARCと立て続けにコンテストに参加しましたが、来週は連休且つコンテストも無しということで、じっくりと精進に臨む時間がとれそうです。また連休明けのコンテストで良い結果が出るように準備したいと思います。

ということで、また次回も頑張ります。