Help us understand the problem. What is going on with this article?

AtCoderで緑色になりました

AtCoderで緑色になりました

スクリーンショット 2020-03-28 22.54.54.png
こんにちは。Momiyamaです。
AtCoder Beginners Contest160で、ギリギリ高校1年生の間に緑色(レート800↑)になれました。
私の中では緑色のハードルは非常に高く、憧れだったので、もし何か参考になればいいなと思って記事を書くことにしました。
各色の段階ごとに、何を練習したか、どういう問題が解けていたかを記そうと思います。

灰色 (0~399)

スクリーンショット 2020-03-26 16.21.43.png

初参加は比較的良いパフォーマンスを取りましたが、その後は停滞して茶色パフォーマンスをとることがほとんどでした。
プログラミング自体は1年半ほど前からやっており、高校では理系なので、突出した数学の才能こそないものの、ある程度アドバンテージになった点もありました。例えば、初回のE問題は数学Aに関する知識を必要としていたので、高校数学をコンスタントに勉強するといいかもしれません。
他の方が仰る通り、APG4b という教材はコンテストに出る上で必要な知識が書かれていて良かったです。
この時期は、AGCなどの高難易度コンテストに出場しても全く解けず、レートを下げてしまうことが多々ありました。
今思えば、レートだけこだわるというのも微妙ですが、モチベーションを下げてしまう要因になるので練習時間に当てても良かった気はします。しかし、出るだけで高いパフォーマンスが出てレートが上がるという主張もあるので、気にせず出てもいいと思います。

使えたアルゴリズム

  • 累積和

使えたデータ構造

  • map
  • set
  • vector

この頃は、累積和の知識が少しあるだけで特にめぼしいアルゴリズムも知りませんでした。
ですので、ABCに出た時、3完(100+200+300=600)で終わることがほとんどでした。
灰色の後半の時期に簡略化するためのマクロを用意しました。

茶色(400~799)

スクリーンショット 2020-03-26 16.25.02.png
少し失敗して〜茶色中位のパフォーマンスをとることはありましたが、概ね緑パフォーマンスをとることが増えました。
この時期は練習量も多く、手応えを感じる回も増えてきたように感じます。

新規で使えるようになったアルゴリズム

  • 深さ優先探索
  • 幅優先探索
  • bit全探索
  • 基本的な貪欲法

新規で使えるようになったデータ構造

  • priority_queue
  • 基本的なUnionFind

失敗した時とそうでない時の違い

1. ABC158,パナソニックコンテスト2020

精進不足です。
パナソニックコンテストではdoubleの精度が、ABC155では普通の全探索をO(1)で解けないか考えてしまったことが問題でした。
特に私は普通の全探索が一番苦手で、制約を見て間に合いそうなら素直に探索するようにしました。

2. ABC156

焦りです。
特に目標パフォーマンスを設定して順位表をチラチラ見ると焦ってしまい、解けるものも解けなくなってしまいます。
自分が決めた得点が取れるまでは順位表は極力見ないほうがいいです。

やったこと

スクリーンショット 2020-03-28 22.27.10.png

過去問をたくさん解きました。私は競プロはかなり苦手で、地頭が悪いので序盤からかなり過去問を解かないと上がりませんでした。
AtCoder Problemsを利用すると過去問を解くやる気が上がります。

速解きをしたほうがいいとかなり助言されますが、その日の緊張度合いと脳の覚醒度でタイピング速度が大きく変化する私のような人間は速解きだけでレートをあげようとすると何度か破滅して大きくパフォーマンスを下げてしまいます。
今日は順位表をコンテストトップにリダイレクトした他、グレープフルーツジュースがあったので飲んだり、大好きなadieuさんのCDを聞いてリラックスするように努めました(ここだけの話、adieuさんの曲は本当にリラックスできますし、Instagramなどもかわいくて非常に癒されます)。

スクリーンショット 2020-03-28 22.27.35.png
AtCoder Problemsには、Recommendという、現在のレートから解くべきおすすめの問題が算出される機能があります。
私個人のやり方ですが、1日に3~5問、Median Solve Timeの時間にタイマーを合わせて問題を解くようにしていました。
もしわからなければ解答をみて、知らない概念であれば @drken さんの記事などを参考に学習を進めました。

スクリーンショット 2020-03-28 22.34.07.png
モチベーション向上として、AtCoder Scoresのグラフプロットを利用するという手があります。
私は同レート帯の中ではかなり過去問を解くのを頑張っている方だと自負していますが、人と比べて負けていたら悔しくてさらに意欲が湧きます。
個人的には、精進レートが実際のレートに抜かれないように頑張ろうと思っていました。

スクリーンショット 2020-03-28 22.27.21.png
あと、streakという、新しい問題をACしたか?という連続日数を記録してくれるシステムがあります。
これを継続させるのもいいと思います。
しかし体調を崩して熱を出すとstreakが繋げないので、体調を整えるのが多分最も重要です。

最後に

次目指すなら水色, レート1200になりました。
ABC-Dを安定させたりABC-Eを解けるようになって、パフォーマンスを上げていけるように頑張ります。

momeemt
こんにちは。高校2年生の樅山です。 Web技術や画像処理などの記事を執筆しています。
nim-in-japan
Nim言語の日本コミュニティです。
https://nim-lang.org/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした