クリプトHFTとか競プロとか

競技プログラミングや仮想通貨に関することを中心にブログを書いていきます.

AtCoderでPython使いが茶色になるまでにやったこと。

この記事では、AtCoderで茶色になるまでにやったことを紹介していきます。

目次:

自己紹介

今回のABC148で無事茶色になれた名無しのマイナーです。 茶色になるのは思っているよりも高い目標で、ここに来るまで五ヶ月がかかりました。

ABC148では簡単な問題が多めでしたが、そうであるからこそ練習量が生きたとも思っています。

f:id:KabukiMining:20191223191023p:plain
レート遷移画像

競技プログラミングを始める

もともと、仮想通貨関係のプログラムを趣味で書いており、プログラミングはある程度していたのですが、 競技プログラミングは名前を聞いたことがある程度で、本格的にしたことはありませんでした。

ですが、Twitterを見ていると

というTweetが目に入り、「五ヶ月で青色」という圧倒的事実に惹かれ、競技プログラミングをはじめました。(今思うと、5ヶ月で青色がすごいとなぜ五知っていたのかは謎)

初コンテストに参加する

今でもなんとなく覚えています。 初参加したコンテストはAtCoderBeginnerContest 136でした。

A問題とB問題を標準入力の方法をググりながらもACしました。 しかし、C問題が解けませんでした。

解説放送を見ながら納得したのを覚えています。 ちなみに、ついたレートは7でした

とりあえずABCには参加する

とりあえず参加していました。 純粋に楽しいし、解けない問題が解けると気持ちいいからです。 この期間は解けなかった問題の解説を見る程度の勉強をしていました。

ですが、コンテストのために精進するほどモチベーションはなかったので、あまり精進はしませんでした。

ABC142で四完を達成する

D問題は整数に関する問題でしたが、初めてD問題をコンテスト中に解くことができました。 このあたりで、コンテスト中にググることの大切さを学んだ気がします。

きりみんちゃんを見る

バーチャル幼女プログラマー(7歳)として、AtCoderの過去問を解く配信をしているVtuberの「きりみんちゃん」という方がいるのですが、 彼女も当時の僕より少しレートが高いぐらいで、勝手にライバル認定していました。

配信を見ながら並走して解くと、自分が先に解こうとする競争心が働くのでいい感じです。 彼女はたぶん僕より実装力は高いですが、数学力は僕のほうが高いです。

また最近は数学的傾向の強いコンテストが多いので、僕がきりみんちゃんを抜かせたんだと思います。(といっても50も差はない)

ライブラリをつくる

Pythonはとくに、もともとあるライブラリなどが多いので(fractions.gcd()など)、C++を使っている方々よりは、ライブラリの必要性は下がると思うのですが、 それでもやっぱりライブラリがあると便利です。

具体的にあるライブラリを列挙すると

とかですね。 いわゆる「貼るだけ」問題もABCのB問題やC問題に存在したりするので、少しでもパフォを上げたい灰色の方にはおすすめです。

AtCoderProblemsの新ABCを埋める

AtCoderProblemsというAtCoderの過去問をまとめて見れるサイトがあるのですが、そこで新ABCの過去問を解いていました。 茶色を目指すだけだったら、新ABCのA,B,Cだけを埋めるだけで十分だと思います。

ちなみに、僕は最近やっと100ACいきました。 f:id:KabukiMining:20191224161718p:plain

また、「攻めの精進」と「守りの精進」という考えたもあるようです。 自分が明らかに解ける範囲のDifficultyの問題を解いて、基礎や知識を固めることを「守りの精進」、 ギリギリ解けるかわからないラインの問題を解いて考察力などをつけることを「攻めの精進」とするそうです。

守りの精進をすることによって、コンテスト中のパフォーマンスが安定し、 攻めの精進をすることによって、パフォーマンスの最大値があがるそうです。

継続的な精進だけでなく、戦略的な精進が求められそうです。

日々是精進!