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
shibh308
April 19, 2019
0
170
競技プログラミングをしよう
新入生向けのLT会で使用した資料です
shibh308
April 19, 2019
Tweet
Share
More Decks by shibh308
See All by shibh308
CombGig3 発表資料
shibh308
0
95
JOI夏季セミナー2018 発表資料
shibh308
0
220
herbstluftwmのおはなし
shibh308
0
510
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
Designing for humans not robots
tammielis
248
25k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
Scaling GitHub
holman
457
140k
Why Our Code Smells
bkeepers
PRO
331
56k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Designing for Performance
lara
601
67k
Infographics Made Easy
chrislema
238
18k
Building Adaptive Systems
keathley
31
1.9k
Automating Front-end Workflow
addyosmani
1356
200k
Docker and Python
trallard
34
2.7k
Transcript
競技プログラミングをしよう 塚本(@shibh308)
はじめに このスライドは、(主に)新入生向け、初心者向けの内容になっています 特に2年生以上の方の場合、もう知っている説明ばかりになるかもしれません もしそうなったらごめんなさい>< かみくだいて説明する都合上、説明にちょっと変なところがあるかも… 見て分かるとおり、スライドの構成とデザインがすごい適当です ごめんね><
自己紹介 塚本(@shibh308) ・情報工学科 3年 ・去年は競技部門で開発していました(準優勝!) ・今年も競技部門に参加します ・情報オリンピックやパソコン甲子園にも参加しました
競技プログラミングってなに?
競技プログラミングってなに? (出典:https://www.slideshare.net/iwiwi/wakate-web-14323842) (※注: “プログラミングコンテスト”は競技プログラミングの腕前を競うコンテストの事を指します)
具体的には何をするの? 毎週開催されるコンテストに参加して、問題を解きます 問題形式はAOJやAtCoderのものと同じです(これらは元々競技プログラミングをするためのサイトです ) より速く、より多くの問題を解いて、高い順位を目指します
具体的には何をするの? 毎週開催されるコンテストに参加して、問題を解きます 問題形式はAOJやAtCoderのものと同じです(これらは元々競技プログラミングをするためのサイトです ) より速く、より多くの問題を解いて、高い順位を目指します →とりあえずやってみましょう!
問題を解いてみよう! 先週末に開催されたコンテストのA問題です 新入生でも解けるので、やってみてください! (出典: https://atcoder.jp/contests/abc124/tasks/abc124_a)
競技プログラミングは簡単? 今の問題は、変数の入出力とifと加減算ができれば解けます →すごい簡単!
競技プログラミングは簡単? 今の問題は、変数の入出力とifと加減算ができれば解けます →すごい簡単! じゃあ全部の問題がこんな感じなの? →そんな事はないです!
問題を解いてみよう! 先週末に開催されたコンテストのC問題です for文と文字列、配列がわかれば解けます しかし、解き方を考えるのが難しいです ( (出典: https://atcoder.jp/contests/abc124/tasks/abc124_c) (※3分の中で解き方の説明をする時間はないので、解き方が気になったら調べるか聞きにくるかしてください …)
競技プログラミングの難しさ 「コードを書くこと」より、「解き方を考えること」が大事 ← 論理的思考力 効率が悪いプログラムだと、時間制限にかかる場合も… 難しい問題だと、データ構造やアルゴリズム、整数論の知識も問われます ・SegmentTree、Convex Hull Trick、中国剰余定理(CRT)とかいろいろ
コンテストサイトについて プログラミングコンテストを開催しているサイトはたくさんあります 日本ではAtCoderやyukicoder、海外ではtopcoderやCodeforcesなど… 初心者にはAtCoderがおすすめです ↑問題文が日本語で日本人ユーザーが多く、レーティングシステムがあるため
レーティングシステムについて 競技プログラミングの(rated)コンテストに参加すると、レーティングがつきます レーティングに応じて、ユーザー名に色がついたりもします レーティングは実力の目安になるので、これでおおよその強さが分かります
AtCoderでの色について 前述の通り、レーティングによってユーザー名に色がつきます (左画像出典: https://jobs.atcoder.jp/info/recruit) ↑ratedコンテストに五回以上参加した人のレーティング分布 (上画像出典: https://atcoderstats.appspot.com/?country=&numRated=5)
オンサイトコンテストについて 現実の会場で行うコンテストを「オンサイトコンテスト」と呼びます 基本的に予選があり、そこで一定以上の成績を出すと本選に参加できます コンテストによっては交通費や宿泊費が出て、普通に旅行にいけたりします 次のページに、いくつかのオンサイトコンテストと予選突破の目安を書きました
オンサイトコンテストについて ・日本情報オリンピック: 2年生まで、予選12月本選2月、緑〜水色 ・パソコン甲子園: 3年生まで(2人ペア)、予選9月本選11月、青〜黄色 ・DDCC(企業主催コンテスト): 前回は予選11月本選1月、水色〜青 ・日経コン(企業主催コンテスト): 前回は予選1月本選2月、青〜黄色
ここまで紹介してるけど、それって楽しいの? めっちゃ楽しいです!!!!!! 頭を使って考察をして、悩んでた問題が解けた時はすごい嬉しい 同級生や年下のライバルと競い合うのはとても楽しいし、負けるととても悔しい しばらくやってると知り合いができたりして、オンサイトでの交流が楽しくなる
おわりに (元動画: https://www.youtube.com/watch?v=FbW_5ipDCbg)
お わ り 2019/4/19 東京高専プロコンゼミ LT会