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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuki Okuda
June 24, 2019
Programming
1
290
競技プログラミング入門
競技プログラミングやろうぜ会のスライド
Yuki Okuda
June 24, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
コードをBlackにしよう
ikura1
1
2.5k
Other Decks in Programming
See All in Programming
CSC307 Lecture 07
javiergs
PRO
0
540
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
440
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
980
CSC307 Lecture 02
javiergs
PRO
1
770
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
600
Data-Centric Kaggle
isax1015
2
750
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
6.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
440
Architectural Extensions
denyspoltorak
0
270
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
120
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
Optimizing for Happiness
mojombo
379
71k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
110
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
62
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
920
The Language of Interfaces
destraynor
162
26k
Thoughts on Productivity
jonyablonski
74
5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How to train your dragon (web standard)
notwaldorf
97
6.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
エンジニアに許された特別な時間の終わり
watany
106
230k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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