競技プログラミング入門
by
Yuki Okuda
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
競技プログラミング入門 やってみようぜ!
Slide 2
Slide 2 text
はじめに ● 競技プログラミング ○ たまに聞くことがある ○ 聞いたことはやったことはない ● 楽しいのでやってみよう!っていう会です
Slide 3
Slide 3 text
流れ ● 競技プログラミングとは ● コンテストをやってみよう ● 解説 ● おわり
Slide 4
Slide 4 text
競技プログラミングとは
Slide 5
Slide 5 text
競技プログラミングとは ● プログラミングコンテストの一種 ● 問題をプログラムを書いて解くこと ● 速く問題を解くほど点数が高い
Slide 6
Slide 6 text
競技プログラミングの良いところ ● 計算量を意識するようになる ● 正確に書く力が身に付く ● アルゴリズムの勉強になる
Slide 7
Slide 7 text
計算量を意識するようになる ● 問題の処理時間に制限があります ○ だいたい2秒とか ● 制限内で解けないとペナルティがありまーす ○ 計算量がわからないと、提出しにくい ○ ペナルティで点数下げたくない… ● 覚えるしかないよなぁ?
Slide 8
Slide 8 text
速く正確に書く力が身に付く ● 間違えるとペナルティ ○ 速く解くとボーナス ● 速く間違えずに解くのがベスト ○ 脳内デバック力が求められている
Slide 9
Slide 9 text
アルゴリズムの勉強になる ● 問題に時間の制限がある ○ 組み合わせを一個ずつ確認はできない ● 参加しているうちにアルゴリズムと出会う ○ 解答見たり、聞いたりするとね ○ 自然に覚える
Slide 10
Slide 10 text
競技プログラミングをやるには ● AtCoder ● TopCoder ● Codeforces
Slide 11
Slide 11 text
やっぱりAtCoderだね! ● みんな大好き!日本語! ● 初心者向けのコンテストがやってるよ! ○ だいたい週1で開催! ○ AtCoder Beginner Contest(ABC) ● 解説動画や資料もあるよ!
Slide 12
Slide 12 text
初心者向けコンテストの難易度 ● A問題 ○ 言語が書ける ● B問題 ○ 全探索が書ける ● C問題 ○ アルゴリズムを使って書ける
Slide 13
Slide 13 text
A問題の例題 X, Aは 0以上9以下の整数です。 XがA未満の時0, A以上の時 10を出力してください。 入力: X A 例: 1 4
Slide 14
Slide 14 text
例題の解答 X, A =[int(i) for i in input().split()] print((X >= A) * 10)
Slide 15
Slide 15 text
例題の解答(JS) function main(input) { input = input.split(" "); x = input[0]; a = input[1]; console.log(x < a ? 0 : 10); } main(require("fs").readFileSync("/dev/stdin", "utf8"));
Slide 16
Slide 16 text
最速解答時間はいくつ?
Slide 17
Slide 17 text
はい、最速解答は19秒です
Slide 18
Slide 18 text
競技プログラミングを完全に理解した PythonBeginners沖縄 22 https://github.com/bouch20/PyBeg i_Okinawa22
Slide 19
Slide 19 text
さっそくやってみよう! -コンテストに参加してみよう-
Slide 20
Slide 20 text
じゃけん、AtCoder登録しましょうねー https://atcoder.jp
Slide 21
Slide 21 text
AtCoder登録しましょうねー
Slide 22
Slide 22 text
バーチャルコンテストでやります ● 非公式サービス ● 過去問でコンテストが開ける
Slide 23
Slide 23 text
ということで登録しましょう https://not-522.appspot.com/
Slide 24
Slide 24 text
ということで登録しましょう
Slide 25
Slide 25 text
コンテストページにアクセス コンテストに参加しませう https://not-522.appspot.com/contest/5148318244012032
Slide 26
Slide 26 text
問題解くんご 問題一覧と順位が表示されるよ Roundingを解くべし
Slide 27
Slide 27 text
問題ページだよ
Slide 28
Slide 28 text
下にコード提出用フォームあるよ
Slide 29
Slide 29 text
下にコード提出用フォームあるよ 言語選ぶ
Slide 30
Slide 30 text
下にコード提出用フォームあるよ コード書く(貼る)
Slide 31
Slide 31 text
下にコード提出用フォームあるよ 提出だー!
Slide 32
Slide 32 text
え、実行確認したい? こ↑こ↓
Slide 33
Slide 33 text
あとは提出時とだいたい同じ テストしたい入力いれる 下の方に出力フォームと実行ボタンあるデス
Slide 34
Slide 34 text
提出一覧だよ
Slide 35
Slide 35 text
提出結果だよ AC: 正解 WA: 不正解 TLE: 実行時間超過
Slide 36
Slide 36 text
提出したらこうなる
Slide 37
Slide 37 text
ではやってみましょう
Slide 38
Slide 38 text
解説
Slide 39
Slide 39 text
次のAtCoder Beginner Contest 132 6月29日 21時に開催!! AtCoder Beginner Contest 132