Slide 1

Slide 1 text

競プロの楽しい始め方、 そして競プロをすることによるその 効果。 cleantted (テッド) VRCLT #2

Slide 2

Slide 2 text

自己紹介 ・cleantted (テッド) ・メガネの色が  最新のcommit hash値な  ニコアバターの人 ・趣味:  VRC  音ゲー(DDR etc.)  競プロ ・twitter: @cleantted_s ・Discord: 妹尾/テッド#3519

Slide 3

Slide 3 text

競技プログラミング (競プロ) # とは

Slide 4

Slide 4 text

一定の制限の下で、 与えられた問題を解くコードを 早く・正確に書くことで 順位を競うネットゲーム

Slide 5

Slide 5 text

競技プログラミング #とは 入力例 1: 3 4 5 13 Even Odd 出力例 1: 入力例 2: 出力例 2: たとえば、こんな問題が出ます: 出典:https://atcoder.jp/contests/abs/tasks/abc086_a

Slide 6

Slide 6 text

競技プログラミング #とは ↑ Pythonでの解答例 こんな感じで問題を解くプログラムを書きます: 提出 その場で 自動的に正誤判定 対応言語(一部:コンテストによる):  C++, Java, C#, Go, Python (2系, 3系), Perl, Ruby,  Haskell, Pascal, Javascript (Node.js), Scala, F#

Slide 7

Slide 7 text

・すべてのテストケースに正解 ・実行時間・メモリの制限内に実行が終わる    制限の例:    ⇒ Accepted!! (= 正解) 競技プログラミング #とは AC: Accepted(= 正解) 正誤はその場で判定されます:

Slide 8

Slide 8 text

競技プログラミング #とは 点数が高い方が 上位 ACではないと 最終提出時間に ペナルティ 同じ点数なら 最終提出の早い 方が上位 間違えた回数 コンテストの順位を競います: A B C D E

Slide 9

Slide 9 text

ここがたのしい ● アルゴリズムの知識が増える ○ 例:長さNの配列に、ある要素があるか探す ■ 線形探索:O(N) ■ 二分探索:(ソート)+ O(logN) ● N = 100,000 ⇒ logN ≒ 20 ○ その他テクニック ■ 貪欲法 ■ 累積和 ■ 動的計画法(DP) ■ などなど……

Slide 10

Slide 10 text

ここがたのしい ● レーティング ○ コンテストの成績に応じて上下する https://jobs.atcoder.jp/info/recruit https://jobs.atcoder.jp/home

Slide 11

Slide 11 text

競プロを始めるには? 1. 「AtCoder」に登録しよう! (https://atcoder.jp/) ○ 日本で開催、初心者が参加しやすい、解説もある 2. チュートリアルをやろう! ○ 最初の関門:標準入出力 ■ 代表的なものはコード例があるので参考にすると良し ○ その後は有志がまとめた問題集をやるのが良し ■ https://atcoder.jp/contests/abs 3. コンテストに参加しよう! ○ 初心者用のコンテスト(AtCoder Beginner Contest: ABC) に参加するのがおすすめ ■ 次のABC(130): 6/16 (日) 21:00-22:40

Slide 12

Slide 12 text

競プロ楽しいよ!! みんなもやろう!!