コンテンツにスキップ

第3章-競技プログラミングとは

C++の基礎文法はある程度理解できたでしょうか?

今回の章では競技プログラミングについての説明をしたいと思います。 また、競技プログラミングをするに当たって便利なサイトをいくつか紹介したいと思います。

その前に

この記事を読んでもらう前に皆さんに必ず読んでもらいたい記事をここに置いておきます。

レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】

とても良い記事ですので読んでください。
また、記事中に出てくることはまだ完全に理解できなくても大丈夫です。今は「競プロとは何か」について理解してもらえればいいです。


記事は読みましたか?結構長かったので一応要点をまとめておくと、

  • 競プロとは参加者全員に同一の問題が出され、より早くそれを解くプログラムを作った人の勝ち
  • 競プロではその人の実力を表すレートがつけられ、レートが上がると色が変わる(嬉しい)

AtCoder

上の記事でも紹介されていました。 APG4bがあったサイトです。
AtCoderは日本最大の競技プログラミング運営会社で、プログラミングコンテストに参加したり、過去問を解いたりすることができます。

AtCoder Problems

上の記事にも出てきましたが、ここでもう一度紹介します。

上の画像のような感じでAtCoderのコンテストの過去問で自分の解いた問題、自分のライバルの解いた問題を可視化してくれます。

左上の二つのユーザー名のうち、左が自分、右が自分のライバルのユーザー名です。 自分が正解した問題を緑、ライバルが正解した問題をピンク、自分が間違えた問題をオレンジに表示します。

この場合は「soraieが正解した問題」は緑、「soraieが正解していなくてsouta_1326が正解した問題」はピンク、 「soraieが間違えた問題」はオレンジに表示してくれます。

また、解いた問題の可視化だけでなく他にも様々な機能があります。 例えば、

  • Virtual Contests : 本番のような形式の疑似コンテストを開ける

  • User : 好きなユーザーの詳細な情報を見れる

などです。ここでは機能の詳しい説明は省きますので気になったものがあったら是非使って試してみてください。

AtCoder Scores

こちらも自分の解いた問題を可視化してくれるサイトですが、AtCoder Problemsがコンテストごとに表示をしているのに対して AtCoder Scroesは問題の得点ごとに解いた問題を可視化してくれるのです。

実際にどんな感じで使うのかを説明します。

まずトップの挑戦者のところにところに自分のユーザー名を、対戦相手のところにライバルのユーザー名を入れてEnterを押します。

すると下のほうに上の画像のような感じで表示されると思います。 ここではそれぞれのユーザーが正解した問題、間違えた問題が色分けされて表示されます。

また、そのユーザーがどれだけ精進をした(問題を解くこと)かをグラフにしてくれる 精進グラフという機能もついています。

まとめ

この章では競技プログラミングで主に使うサイトとその紹介をしました。これらのサイトは今後頻繁に使うので今のうちに 実際に使ってみてください。 ほかにも便利なサイトがたくさんあるので付録に載せておきました。是非見てみてください。

また、AtCoder Scoresの説明中に「精進」という言葉が出てきました。 精進とは競技プログラミングの問題を解くことを指します。精進をしなければ実力は上がりません。実力向上への近道は精進です。 たくさん精進をして実力を伸ばしましょう!!

AtCoderでは基本的に毎週土曜日か日曜日の夜21:00~コンテストが開かれます。 APG4bの第1章の内容を理解できていればAtCoder Begginers ContestのA,B問題は解けると思うので、腕試しに是非出てみましょう。 コンテストに出ることで得られる知識はとても大きいと思います。

次回から

AtCoderAPG4bの第1章の知識では難しい問題も多いです。なので、次回からはAPG4bの第2章以降を読んでもらい、プログラミングコンテストのための知識を 身につけてもらいます。 次回はAPG4b 2.00.第2章についてを読んでください。