HACK TO THE FUTURE 2024(AtCoder Heuristic Contest 027)参加記

2023/12/1〜2023/12/10に開催されたHACK TO THE FUTURE 2024(AtCoder Heuristic Contest 027)に参加しました。

atcoder.jp

ここ最近のAHCでは、ギリ水パフォか緑パフォを取ってしまうことが多く、自分の実力の無さを感じている状況です。

AHCは結果が悪くてもレートが下がらないので、なんとか青コーダーの地位を確保してますが、そろそろレート以上のパフォーマンスを出していかないとというところ。今回は青パフォ以上目指して挑んでみます。

今回の結果

26.7Gの484位で終了。今回も残念な結果になりました。

AHC027結果
AHC027結果

パフォーマンスは、ギリ水色という結果。前回は1上がりましたが、今回は2上がりました。

振り返り

今回も、初手の方針につまづいてしまい、スコアの改善もままならぬ状態となりました。

AHC027提出結果
AHC027提出結果

A問題

A - Recurring Cleaning Route

今回の方針の概要です。

今回の問題は、ロボット掃除機を部屋中全てのマスを掃除するよう操作して、最終的に平均の汚れを少なくするという問題。

まず、部屋中全てを掃除する制約があるので、初期解を作るのも中々しんどそうだという印象。コンテスト開始より、初期解の構築に結構悩みながら実装が進まないという時間を過ごしていました。

しかし、そんなことしてるうちに、残り日数も徐々に少なくなって来たので、とりあえずサンプルのDFS実装をJavaに移植して1度提出。そして、ビジュアライザでサンプルの実行結果を観察してみると、汚れの少ないマスについてDFSの戻りターンでも清掃してるため、他の汚れが大きいマスで汚れが累積することが結果に悪影響を与えているのでは無いかという考えが浮かびました。

ということで、可能な限りDFSの戻りターンで形成される経路を省略できるような実装にし、全体として短いターンで1周回ることができるようにすればスコアが改善するのでは、と実装してみたら、予想通りスコアは改善されました。

が、、その後の改善アイデアが全くダメ。。経路を乱択にしてみたり、汚れの多いマスを2回回るようにしてみたりしてみましたが、スコアが改善の方向に向かわず、逆に悪化するばかりという状態に。。

最終日まで、このような状況から抜け出せなかったので、結局、一番スコアの良かった、なるべく早く1周する実装で最終提出とすることにしました。

最終提出コード

https://atcoder.jp/contests/ahc027/submissions/48408634

感想
  • 今回も、初回の方針決定が誤っていた模様。経路を短くすることばかり考えていましたが、その考えに固執しすぎたのがよくなかった模様です。

これまでの実績

2上がりました。

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

総括

今回も、ハズレ方針を引きからのリカバリが効かなかったなあという感じです。

また、アイデアの試行が足りてないというのも、伸び悩みの原因かと。この結果にめげずに、他の上位解法を復習して、次に備えていこうと思います。

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