Atcoderで水色になりました。

 こんばんは。てんぷら(TwitterID:tempura_pp)です。先日(3/25)のARCでレートが1200に到達したのでとりあえず今までをざっくりまとめてみます。自分の備忘録としての用途が主なのであまり参考にならない部分も多いかと思いますが悪しからず。

 f:id:tempura0224:20180328210555j:plain

コンテストの成績

 こんな感じです(画像参照)。

 f:id:tempura0224:20180328210649j:plain

 謎の大成功回を除けばパフォーマンスは1000~1600くらいです。具体的な点数でいうと、

  • ABC,ARC…Cまで解けたのが4回、Dまで解けたのが3回。
  • AGC…2回ともAが解けただけ。
  • APC…これは無視でいいです。

 要は300点以下の問題(ABCのCまで)を安定して解けて、400~500点が半分くらいできるようになると水色になれるんだと思います(適当)。

使った知識

 ここまで参加したAtcoderのコンテストで本番中に解けた問題で使ったテクニックやアルゴリズムなんですが

 以上です。(単純な全探索やAd-hocなものは省きました。)DP書いてなかったのか、、、。ということで極端に難しい知識がなくても水色までは到達できることがわかりますね。

 

水色になるために必要そうなこと

 僕なりに必要そうだと思ったことをまとめてみようと思います。

蟻本を買う

 読む、じゃなくて買う、なところがポイントです()。蟻本初級編でも普通に難しくてなかなか読めないんですよね。(僕は一回挫折して螺旋本に逃げました。こっちは初心者でも読めると思います。)

蟻本に関してはいきなり理解しようと思って読むと大変なのであまり深く考えずとりあえず「こんなテクニックあるんだすげぇ」くらいから始めるのでいいと思います。蟻本の知識が必要になる頃には読めるようになってます、たぶん。「蟻本をちゃんと読み切る」というのをモチベーションに頑張るのも1つなんじゃないかと思います、というか僕がそうです。

とにかく問題を解く

 結局これにつきます。AtCoder Problems等で過去問を見られるのでABCの問題をばしばし解いていきましょう。

 さすがにこれだけで終わると何のためにこの項目を作ったのかわからないのでもうちょっと真面目に書くと、

  1. わからないときは解説を読む。めっちゃ大事。無理なものは無理なので解説を読みましょう。わからないまま放っておくより何億倍もいいです。
  2. 人のコードも見てみる。これも大事な気がします。自分が解けた問題でも他人のコードを読んでみると「こんな書き方もあるのか」とか「こう書くと場合分けの数を減らせたのか」とか勉強になることが多いです。
  3. ちゃんとACするところまでやる。解説を読んだ場合であっても絶対に自分でコードを書いてACするところまでやりましょう。意外とバグります()。特にプログラミング経験の浅い場合はコードを書きまくって慣れるのがめちゃくちゃ大切です。競プロって考察がちゃんとできたら後は極論するとタイピングゲームですしね()。
  4. コピペはなるべく使わない。上とほぼ同じ理由です。何度も同じようなコードを書いていると使いまわしたくなるのですが少なくとも勉強するときはなるべく全部書くようにしましょう。個人的には青色になるまではライブラリなしで頑張ろうと思っています。

こんな感じですかね。問題を考えるのにもコードを書くのにも頭を使うのはしんどいので思考停止でできることを増やしていけるとだいぶ楽になります。なにぶん自分の経験が浅すぎるので書けることが少ないのがね、、、。

とりあえずこれ(AtCoder Beginners Selection - AtCoder)は解いておきましょう。dr.kenさんがまとめてくださった初心者用問題集です。ちなみに僕を競プロに導いてくれた人でもあります。

 

最後に

 水色になった記念にブログ書こうと思い立ったのはいいものの文章書くのって難しいですね。定期的に記事書いてる人すごすぎる。

 せっかく開設したので今後は解けた問題の解法だったりコンテストの記録だったりに使うかもしれません。成長日記として色が変わるごとに記事書くのもありかもですね。