Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
競技プログラミング入門
Search
Yuki Okuda
June 24, 2019
Programming
1
240
競技プログラミング入門
競技プログラミングやろうぜ会のスライド
Yuki Okuda
June 24, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
コードをBlackにしよう
ikura1
1
2.1k
Other Decks in Programming
See All in Programming
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
Introduction for Open Source Swift Workshop
giginet
PRO
0
1.1k
ドメイン・ファーストで考える問題解決に役立つモデル設計 / Domain First Model Design
suzushin54
2
2.1k
PostmanでAPIの動作確認が楽になった話
h455h1
0
110
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
3
490
Elm 0.19.0 Changes
bkuhlmann
0
480
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
350
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
110
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
480
元気予報
suu_mire0726
0
850
Featured
See All Featured
Gamification - CAS2011
davidbonilla
76
4.6k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
A better future with KSS
kneath
230
16k
We Have a Design System, Now What?
morganepeng
42
6.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Large-scale JavaScript Application Architecture
addyosmani
503
110k
How GitHub (no longer) Works
holman
304
140k
Web development in the modern age
philhawksworth
201
10k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
29
6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Side Projects
sachag
451
41k
Transcript
競技プログラミング入門 やってみようぜ!
はじめに • 競技プログラミング ◦ たまに聞くことがある ◦ 聞いたことはやったことはない • 楽しいのでやってみよう!っていう会です
流れ • 競技プログラミングとは • コンテストをやってみよう • 解説 • おわり
競技プログラミングとは
競技プログラミングとは • プログラミングコンテストの一種 • 問題をプログラムを書いて解くこと • 速く問題を解くほど点数が高い
競技プログラミングの良いところ • 計算量を意識するようになる • 正確に書く力が身に付く • アルゴリズムの勉強になる
計算量を意識するようになる • 問題の処理時間に制限があります ◦ だいたい2秒とか • 制限内で解けないとペナルティがありまーす ◦ 計算量がわからないと、提出しにくい ◦
ペナルティで点数下げたくない… • 覚えるしかないよなぁ?
速く正確に書く力が身に付く • 間違えるとペナルティ ◦ 速く解くとボーナス • 速く間違えずに解くのがベスト ◦ 脳内デバック力が求められている
アルゴリズムの勉強になる • 問題に時間の制限がある ◦ 組み合わせを一個ずつ確認はできない • 参加しているうちにアルゴリズムと出会う ◦ 解答見たり、聞いたりするとね ◦
自然に覚える
競技プログラミングをやるには • AtCoder • TopCoder • Codeforces
やっぱりAtCoderだね! • みんな大好き!日本語! • 初心者向けのコンテストがやってるよ! ◦ だいたい週1で開催! ◦ AtCoder Beginner
Contest(ABC) • 解説動画や資料もあるよ!
初心者向けコンテストの難易度 • A問題 ◦ 言語が書ける • B問題 ◦ 全探索が書ける •
C問題 ◦ アルゴリズムを使って書ける
A問題の例題 X, Aは 0以上9以下の整数です。 XがA未満の時0, A以上の時 10を出力してください。 入力: X A
例: 1 4
例題の解答 X, A =[int(i) for i in input().split()] print((X >=
A) * 10)
例題の解答(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"));
最速解答時間はいくつ?
はい、最速解答は19秒です
競技プログラミングを完全に理解した PythonBeginners沖縄 22 https://github.com/bouch20/PyBeg i_Okinawa22
さっそくやってみよう! -コンテストに参加してみよう-
じゃけん、AtCoder登録しましょうねー https://atcoder.jp
AtCoder登録しましょうねー
バーチャルコンテストでやります • 非公式サービス • 過去問でコンテストが開ける
ということで登録しましょう https://not-522.appspot.com/
ということで登録しましょう
コンテストページにアクセス コンテストに参加しませう https://not-522.appspot.com/contest/5148318244012032
問題解くんご 問題一覧と順位が表示されるよ Roundingを解くべし
問題ページだよ
下にコード提出用フォームあるよ
下にコード提出用フォームあるよ 言語選ぶ
下にコード提出用フォームあるよ コード書く(貼る)
下にコード提出用フォームあるよ 提出だー!
え、実行確認したい? こ↑こ↓
あとは提出時とだいたい同じ テストしたい入力いれる 下の方に出力フォームと実行ボタンあるデス
提出一覧だよ
提出結果だよ AC: 正解 WA: 不正解 TLE: 実行時間超過
提出したらこうなる
ではやってみましょう
解説
次のAtCoder Beginner Contest 132 6月29日 21時に開催!! AtCoder Beginner Contest 132