tshimizu's diary

日々の記録

いつの間にかA予選

いつの間にかもうA予選は明後日に。ラスト一日もう新しいことはせずに、自力では解けなかったけど解説見て解けた問題をもう一回解こうかな。もちろん全部は時間的にできないけど。

夏休みに入って初めて、本気で勉強し始めた競技プログラミング。ここまでの勉強の進度としては、予定の半分くらいかなあ。半分というか、そもそもはっきりした到達目標がなかったからそれも測れない。後でプランを見直すためにも目標ははっきりしておくべきだったな。

ここでちょっと勉強法に関してのメモ。

競プロの一番効果的な勉強法として、コンテストにでてそこで解けなかった問題を見直す、というのはよく聞く。はじめ、本「アルゴリズムとデータ構造」を頭から順番にやっていたけど、これはモチベーション的にきつく、自分でやってるにも関わらず「やらされてる感」があった。夏休み後半からは、とにかくABCの問題を解きまくる方針に変えた。解説を見てもいまいちわからない、という状況になって初めてその問題で利用されているアルゴリズムを本で調べた。これはなかなか効果的だった。本の内容をただ順番に勉強している時と違い、自分で悩み、そのアルゴリズムを知りたくて仕方がなくなっている状態で本の説明を読み、それと一緒に最も典型的で簡単な例題を実際に解いてみるので、自分の中への吸収率がすごく良かった。

ACをとることの達成感と解けない悔しさによってモチベーションを維持しながら、渇ききったのどに水を流し込むように基本的アルゴリズムを吸収できるこのやり方は自分にハマっている効果的なものだと思う。(こんな大げさに言うほどは効果ないかもしれないけど)

 

ABCオールACマラソン(#028まで)の途中結果は、76/112問(解説見てAC出したのも含む)。やっぱD問題は太刀打ちできないのが多い。Cも部分点しか取れないのも多い。

実感として成長が感じられるのは、基本的なグラフの問題に対しては、なんとなくは答えが見えるようになって、問題を楽しめるようになっていること(以前は拒否反応を起こしていた)。これも、ABCのグラフの問題で詰まってから、本のグラフの章をある程度こなしたのが効果的だったように思う。

 

とりあえずは、A予選終えたら、またB予選までの計画をしっかり立てよう(なるべく具体的に!)。B予選までにABCのDも半分くらいの問題は解けるようになっておきたい。で、CodeThanksFestivalではすべてのDが解けるくらいの状態でいたい。それくらいのレベルで参加させてもらえるかどうかはわからないけどね!