Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
競技プログラミング入門
Search
Yuki Okuda
June 24, 2019
Programming
1
260
競技プログラミング入門
競技プログラミングやろうぜ会のスライド
Yuki Okuda
June 24, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
コードをBlackにしよう
ikura1
1
2.3k
Other Decks in Programming
See All in Programming
Djangoの開発環境で工夫したこと - pre-commit / DevContainer
hiroki_yod
1
550
物流システムにおけるリファクタリングとアーキテクチャの再構築 〜依存関係とモジュール分割の重要性〜
deeprain
1
250
競技プログラミングで 基礎体力を身につけよう / You can get basic skills through competitive programming
mdstoy
0
130
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.4k
CSC509 Lecture 12
javiergs
PRO
0
180
As an Engineers, let's build the CRM system via LINE Official Account 2.0
clonn
1
590
Vapor Revolution
kazupon
2
2.4k
cmp.Or に感動した
otakakot
3
330
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
150
Develop iOS apps with Neovim / vimconf_2024
uhooi
1
120
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
210
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
160
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Language of Interfaces
destraynor
154
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
For a Future-Friendly Web
brad_frost
175
9.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
[RailsConf 2023] Rails as a piece of cake
palkan
52
5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
470
YesSQL, Process and Tooling at Scale
rocio
169
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Raft: Consensus for Rubyists
vanstee
136
6.7k
Thoughts on Productivity
jonyablonski
67
4.3k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
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