この記事はアドベントカレンダー2020 8日目の記事です
自己紹介
皆さん初めまして、20Bのひしもちです。traPでは主にSNSと競技プログラミングとギャルゲーをしています。
今年の3月末から競技プログラミングを始めて、現在はAtCoder水(highest:1508), Codeforces水(highest:1501)です。
目的
この記事では、PCナンモワカランな人がC++とVSCodeで実際にAtCoderのコンテストに出られるようになることを目標としています。
しかし、筆者もPCナンモワカランなので、後半は他の人が書いてくれたありがたい記事をひたすら紹介する内容となります。
この記事を読むにあたって、プログラミングの知識は一切不要です!
(実際に私もほぼまっさらな状態から始めました)
Google検索してもわからないことがあったら気軽にコメントしてください
競技プログラミングって何?
問題が出されるので、それを解くプログラムを書こう!って感じです
ここではAtCoderの簡単な問題を解いてみます
問題 A - twiblr
問題文
あなたはtwiblrというSNSをしています。
twiblrでは、フォロー数が(フォロワー数)+を超えない範囲でフォロー数を増やすことができます。
あなたの現在のフォロワー数はでフォロー数はです。
フォロー数はあといくつ増やせますか?
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
A B
出力
フォロー数があといくつ増やせるかを出力せよ。
このような形で問題が出されます。
解答する
今回はコンピュータサイエンスで扱ったPythonでこの問題を解いてみます。
標準入力などが分からないかもしれませんが、今は無視して大丈夫です。
フォロワー数がでフォロー数がなのでを出力すればいいですね。
制約からマイナスになる心配もないことが分かります。
# AとBをinput関数で数値型として受け取る
A, B = map(int,input().split())
# 答えを出力する
print(2*A+100-B)
このような感じで問題を解いていきます
実際に始める
それでは、実際に競技プログラミングを始めてみましょう。
プログラミング言語はC++を使います。
理由は
- 使用人口が最も多いため、解説記事やライブラリが豊富
- 実行時間が早い
- APG4bがある
私が使っているから
等です。
ここに書いてあることをやれば、ABCに参加して最低1問は解くことができるようになるでしょう。
とは言っても、やることは1つだけです
APG4bを第三章まで進める
APG4b(https://atcoder.jp/contests/APG4b)を進めてC++と競技プログラミングについて学びましょう。
これさえやればABCに参加して最低1問は解くことができるようになります!
読むだけでなく、途中に練習問題もあるため飽きることなく進められます。
もし分からなかったらGoogle検索!Google先生は大体すべての問題を解決してくれます(要出典)
これでABCで1問は解けるようになったはずです。試しにABC180の問題を解いてみましょう
より高みを目指すために
先人たちが残してくれた様々な知恵がネットには転がっています。
本記事ではその中からオススメのサイト・記事を紹介します。
環境構築編
- 【VScode+WSLで始める】競プロ用C++デバッグ環境構築
- 書いてある通りに進めればVSCodeの環境が簡単にできます。
- WSLはWindows 10 用 Windows Subsystem for Linux のインストール ガイドを参考に入れましょう
- VSCodeは https://code.visualstudio.com/ からダウンロードします
精進編
- AtCoder Problems
- 過去問が集まったサイトです。問題の難易度やおすすめの問題もわかります。
- レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】
- 僕のバイブルです
この記事を貼るだけで良かったんじゃないかな
- 僕のバイブルです
解説編
- けんちょんの競プロ精進記録
- 様々な問題の解説記事が分かりやすく書かれています。
- kmjp's blog
- 難しい問題が多めです
コンテストサイト
- Codeforces
- 大手コンテストサイト
- 英語
- 参加者が多い
- yukicoder
- ゆるふわコンテストサイト
- 日本語
- レートはないです
- AOJ
- データ構造などを学べるコースがあります
- レートはないです
いかがでしたか?
是非腕を磨いて友達と†激アツバトル†を繰り広げてください
明日の記事は@HFさんです