ヒューリスティックは面白い!!
ABC,ARCでアルゴリズム力を鍛えるのも楽しいですが、自分はヒューリスティック力を鍛えるAHCをオススメします!
AHCとは?
ABC,ARCの様な完全解答を目指すわけではなく、問題を解いたスコアを改善していくようなコンテストです。
開催期間に関しては数日にわたる為参加しやすい長期型、半日で終わる短期型が行われています。
言語に関しても同様に用いる事ができるので特殊な準備は必要ありません。
おすすめ理由
スコアを改善する楽しさを実感できる、途中経過も意味がある
普段のアルゴリズム問題だとACになる方法を考え、ACかどうかしか評価されませんが、AHCだと””改善””が重要なので考えが全て纏まらなくとも、一部でも実装が行われていればスコアが変動する可能性を秘めています。
実装したコードがしっかりとスコアを良くした時の喜びによって新たな方針を考えるというループにハマってしまいます。
レートが下がることがない
競技プログラミングきつい、辛いの理由にレート変動が存在していると思います。
ただ本コンテストはコンテスト成績が悪くても下がることのない単調非減少型を採用している為、レートが下がることはないです。
レートを気にしてしまいなかなか競技プログラミングに参加を悩んでしまう、やめてしまった人は特に参加する事をお勧めします。
ABC,ARCで得た知識も役にたつ
スコアを改善するとのことですが、当然その途中に実行時間、メモリの問題を考える必要があります。その時は高速化や効率化を行う必要もあるので経験が生かせると思います。
(初心者用)テンプレートも存在する時がある。
いつも存在しているわけではないですが、一部の言語のサンプルコードが存在している事があります。
「勉強始めてそんなにコード書けないかも」と言った人でもテンプレートを用いる事で最初からコンテストに参加でき、自分のできる範囲で実装が行えます。
コンテスト中で自分が行っている事
- まずACを出せるコードを書く(テンプレート)
- 貪欲法によってある程度の改善を目指す
- ある程度行き詰まった時にヒューリスティックを目指していく
- 山登り法
- 焼きなまし法
もっと動き方を知りたい人に参考になるサイト
結論
競技プログラミングをやってない人、またやってるけど熱が覚めてしまった人、などいろんな人が楽しめると思うので一回参加してみて欲しいです!!!!!!