ntk log ntk

競プロや非競技プロのやったことを書いています.

AtCoder緑色になりました

f:id:ntk_ta01:20200119182957p:plain

f:id:ntk_ta01:20200119183310p:plain

f:id:ntk_ta01:20200119183316p:plain

初めまして、ntk(@ntk_ta01)です。

先日のキーエンスプログラミングコンテスト2020にて、やっと緑色になれました。緑になるまでに何をしたか、などを書いていこうと思います。

自己紹介

  • 情報系の学科に所属するB3

  • プログラミングの経験は、大学に入ってからの授業の課題をこなす以外には何もしていません

競プロ人生の振り返り

B2の初めに、AtCoderのコンテストに初参加しました。が、C++の文字列の扱いに苦労してやめました(授業で学んでからやればいいや、という気持ちだったのですが結局一年くらい放置しました)

その後、熱心な同期に誘われ、B3になる前後でコンテストに再度参加し始めました。この頃はPythonで課題をやっていたので、C++ではなくPythonをコンテストで使うようになりました。しかし、4か月くらい灰もしくは茶パフォしか出ず、めちゃくちゃ萎えてました。競プロ向いてないのか?みたいな気持ちになりましたね…。*1

ただ、2019年7月のICPC国内予選に参加し、競プロのモチベーションが上がりました。B3の夏休みから精進をし始め(AtCoder Problemsなどの存在を教えてもらった)、ちょっとずつレートが上がりました。

ABCのAB埋めが終わったぐらいに茶色になり、2019年内に緑になりたかったのですが上がりきれず…。

2020年になり、参加した最初のratedでなんとか緑になれました。

 勉強したアルゴリズムなど

情報系の学科にいるのですが、勉強しても実装したことがなかったor忘れたので、ほとんど再度勉強しました。

  • エラトステネスのふるい
  • 約数列挙
  • 素数判定
  • 累積和
  • GCD・LCM
  • 二分探索
  • DFS・BFS
  • ダイクストラ
  • UnionFind
  • しゃくとり法
  • いもす法
  • 二項係数
  • bit全探索
  • DP

DPはまだ書けないことが多いです…。いもす法やダイクストラもバチャなどで使ったけど、まだコンテスト中にパッと使える自信はないです。

やったこと・お世話になった記事など

簡単に言うと、やったことは以下の三つです。

  • 諦めずにコンテストに出る
  • 1日1新規AC
  • バーチャルコンテストをやる

去年の8月くらいから1日1新規ACをして、とにかくProbemsのStreakを伸ばすことをしていました。AB埋めが終わった後は、ABCのCに取り組むようにし、できるだけ自力AC、わからなければ解説ACをしていました。時間がない日はProblemsやAtCoder Scoresで100点問題を探して出していました。3か月くらいは実感できる伸びがなく、苦しかったです。

ただ、CafeCoderのTea Break002に参加して全完したり、熱心な同期が出場したICPC横浜の話を聞いたりしてモチベを保っていました。ちょっとずつコンテストで使えるアルゴリズムも増えていき、実力は伸びているはず…!と考えながら精進していました。

その頃読んでいた記事は、

qiita.com

qiita.com

qiita.com

qiita.com

あたりでした。けんちょんさん(@drken1215)がいなければ競プロの勉強は不可能でした。ただ自分は1回でマスターできなかったため、何回も記事を読んで類題を解くことを繰り返しました。蟻本の初級編については、まだ手をつけていない問題もあります。この辺りを勉強するときはAOJも利用していました。

あとは碧黴さん(@AokabiC)の銀髪本を読んだり、じゅっぴーさん(@juppyjappy)のブログも読んでいました。

この記事にはとても感謝しています。

juppy.hatenablog.com

コンテストのパフォーマンスが緑に落ち着いた頃に、ボンドさん(@bond_cmprog)の

bondo.hateblo.jp

を読んだ覚えがあります。パフォーマンスをもっと伸ばしたかったので、記事に書いてある高難度特攻を意識して精進するようになりました(自分にとっては、水diffの問題を多く解く、が高難度特攻でした)。

それまではできそうな問題にだけ手を付けてProblemsのAC数を増やすことをしていましたが、わからない問題にこそ手を出し、解説を読んで理解しようということを増やすと解ける範囲が増えました。それから去年の12月にはバチャコンを多くやり(これもまた熱心な同期が開いてくれました)、解くスピードを上げるように努めました。バチャは複数人でやったり、1人でやったりとしていましたね。バチャをやって解けなかった問題を復習した後が一番実力の伸びを感じていました。わからなかった問題をどうやって解いたか教えてくれる熱心な同期*2の存在が大きかったです。

今後の目標など

インフルエンザのせいで、インフルエンザのせいでStreakが途切れてしまったので、再開します。また、AtCoder Scoresを見たら300点以下の問題が結構残っているので、それを埋めていったり、蟻本を読み進めたりしたいですね。

それにアウトプットすることを増やしたいな~~~と思っているのである程度の数、記事を書きます。それからモチベーションの維持、向上のために競プロ垢をtwitterで作りました。まだ50フォローくらいですが、一気に入ってくる情報が増えた感じがします(というか競プロerツイートが多くない?他のどのアカウントよりもTLが早い)。でも喋る人とかがいないので、よければ絡んでください。順位表から得られる情報も増やしたいので、灰茶緑水のフォロワーを歓迎します(AtCoderでお気に入り登録をします)………。バチャを建てて、たくさんの人とたくさんバチャをやりたいのでぜひ。

研究室もアルゴリズムのなんちゃらをするところに入り教授から応援されましたので、次のICPC国内予選は突破したいです。水色を目指し、これからも頑張ります。

 

*1:というか競プロ界隈を見ていると、プログラミングとか数学ができる人ばかりだな~と感じます

*2:@petite_progがいなければ僕は緑になれませんでした、ありがとう