naoの勉強部屋

ここは勉強ログ用。気になったことだけ、短く大雑把書く

競プロの成績を伸ばすために必要だと思うこと

はじめに

これは、「こうすれば成績が伸びた!」とか実績に基づくものではなく、自分が必要だと思うこと、現状自分に足りてないことを書き連ねていきます。

必要だと思うこと

練習量・毎日やること

これは当然必要。競プロで戦うには自分の引き出しを増やすしかない。特に数学が得意ではない自分は、数こなして問題のパターンを知ることが必要だ。最近Atcoderで典型90問というありがたいコンテンツも出てきた。しっかり活用したい。

練習の問題を選り好みしない。

Atcoder Problemsなど練習を支援をしてくれるサイトがあってとてもありがたい。問題の難易度も表示してくれる機能もあり使い方を工夫すれば練習も効率的に行えると思う。しかし、自分の性格的に問題の難易度がわかってしまうと、まだ早いかな。。。とか思って自分の色以下の問題ばかりしてしまうので、現状難易度表示はOFFにしている。これで難易度に関する情報はアルファベットの情報しかなくなり、問題難易度の選り好みがなくなった。

言語について把握する。

競プロ初めて結構たっているが恥ずかしいことにどの型がどの程度の範囲をカバーしているのか未だに把握してない。現状C++をつかっているが、その他の機能についてもよく知らずに使っている。このデータ構造、このアルゴリズムがつかえればいいとか本番でスッとでてこないと大きなデメリットとなるだろう。これも練習量をこなせば身についてくるだろう。

テストを手を抜かない

テストは面倒。特に結構なデータ量のときは特に面倒だ。最低限サンプルテストだけは通すことはするが、自分でテストケース考えることはあまりなかった。問題の難易度があがるとテストをしっかりやってないと落ちる可能性は高い。コーナーケースを考えてやることが必要。

問題を絵で書いて直感的にも理解する

競プロは論理を駆使して問題を解決するものだ。しかし自分は、はじめから問題を論理的に考えられるほど記憶容量とスペックの脳を持っていない。そこで紙にストレージを拡張する。紙にはあらゆる制約が存在しない。問題を図示することもできるし思考を整理することもできる。紙を活用しない手はない。

おわりに

上の方法をすれば多分成績上がると思う。自分ができてないことなのでなんとも言えないが、少なくとも力は十分身につくと思う。これを気をつけて毎日競プロやっていきたい。 必要だと思ったことは後で書き足す