feature image

2020年11月21日 | ブログ記事

他力本願競技プログラミング入門記事

この記事はアドベントカレンダー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++を使います。
理由は

等です。
ここに書いてあることをやれば、ABCに参加して最低1問は解くことができるようになるでしょう。
とは言っても、やることは1つだけです

APG4bを第三章まで進める

APG4b(https://atcoder.jp/contests/APG4b)を進めてC++と競技プログラミングについて学びましょう。
これさえやればABCに参加して最低1問は解くことができるようになります!
読むだけでなく、途中に練習問題もあるため飽きることなく進められます。
もし分からなかったらGoogle検索!Google先生は大体すべての問題を解決してくれます(要出典)

これでABCで1問は解けるようになったはずです。試しにABC180の問題を解いてみましょう

より高みを目指すために

先人たちが残してくれた様々な知恵がネットには転がっています。
本記事ではその中からオススメのサイト・記事を紹介します。

環境構築編

精進編

解説編

コンテストサイト

いかがでしたか?

是非腕を磨いて友達と†激アツバトル†を繰り広げてください
明日の記事は@HFさんです

Hmcmch icon
この記事を書いた人
Hmcmch

ウマ娘と少しの競プロ

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2020年12月4日
【一緒に始めよう】VSTプラグインをつくる【AdC2020 21日目】
liquid1224 icon liquid1224
2020年12月17日
一人でゲームを作ったハッカソン【AdC2020 34日目】
Komichi icon Komichi
2020年11月19日
ICPC国内予選2020参加記【AdC6日目】
tatyam icon tatyam
2020年12月21日
かけだしデザイナーが「ほぼ」1ヵ月間毎日ロゴを描いてみた話【AdC2020 38日目】
WhiteFox icon WhiteFox
2020年12月17日
JavaScriptの非同期処理についてのメモ【AdC2020 33日目】
reyu icon reyu
2020年12月13日
全方位木DPについて
ebi icon ebi
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記