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
Rustで始める競技プログラミング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
minami
September 17, 2019
Programming
0
330
Rustで始める競技プログラミング
Rustで始める競技プログラミング
minami
September 17, 2019
Tweet
Share
More Decks by minami
See All by minami
Autocxx -RustからC++を安全かつ楽に-
minaminao
2
1.5k
Account/Balanceモデルのシャーディングと課題点
minaminao
1
790
Other Decks in Programming
See All in Programming
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
730
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
CSC307 Lecture 03
javiergs
PRO
1
490
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Design in an AI World
tapps
0
140
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
エンジニアに許された特別な時間の終わり
watany
106
230k
Faster Mobile Websites
deanohume
310
31k
Code Reviewing Like a Champion
maltzj
527
40k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Transcript
3VTUͰ࢝ΊΔ ڝٕϓϩάϥϛϯά NJOBNJOBP SPQQPOHJST
Ԭೆ࠸ NJOBNJOBP !WJOBNJ ࣗݾհ ஜେֶใֶ܈ใՊֶྨ d-BZFS93%νʔϜ
ڝϓϩͱ ಘΒΕΔͷ ࣍ ·ͱΊ
ڝٕϓϩάϥϛϯάͱ ͕༩͑ΒΕΔ ɾ࣮ߦ࣌ؒͱϝϞϦ༻ྔͷ্ݶ͖ ͦΕΛղ͘ϓϩάϥϜΛ࣮ˍఏग़ αʔόʔ͕ਖ਼ղ͔ఆ ղ͚͕ͨଟ͍ํ͕উͪ
ڝϓϩͰಘΒΕΔͷ ɾϓϩάϥϛϯάݴޠͷࣝͱ࣮ྗ ɾղܾྗɺཧతࢥߟྗɺֶྗ ɾߴͳϓϩάϥϜͷ࣮ํ๏ ΞϧΰϦζϜͱσʔλߏ
ΞϧΰϦζϜͱσʔλߏ ߹ֶͤɺแআݪཧɺׂɺηάϝϯτπϦʔɺฏํׂɺώʔϓɺ#JOBSZ *OEFYFE5SFFɺฏߧೋ୳ࡧɺ࠲ඪѹॖɺLEɺ6OJPO'JOEɺಈత࠷దԽɺήʔ Ϝཧɺ࠷૿Ճ෦ྻɺ८ճηʔϧεϚϯɺ࠷খแؚٿɺزԿɺ࠷খॏΈࡾ֯ ܗׂɺάϥϑཧɺ࠷ܦ࿏ɺɺ-PXFTU$PNNPO"ODFTUPSɺϚονϯάɺ ด࿏ݕग़ɺ࠼৭ɺ-PXMJOLɺ࠷খશҬɺτϙϩδΧϧιʔτɺڧ࿈݁ղɺ ᩦཉ๏ɺઢܗɺΨεͷফڈ๏ɺɺೋ߲ɺ($%-$.ɺૉҼղɺ ղੳɺೋ๏ɺϥάϥϯδϡิؒɺιʔτɺసɺ.BOBDIFSɺ.PSSJTr1SBUUɺ ϩʔϦϯάϋογϡɺ4V⒏Y"SSBZɺ;"MHPSJUINɺ͠Ό͘ͱΓ๏ɺ ͜ΕΒ
Ұྫ Λཧղˍ͑ΔΑ͏ʹͳΔ
ૣͬͯΈΔ 3VTUͰʂ
"#$"1SPEVDU IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@B
"#$"1SPEVDU wਖ਼B C͕ඪ४ೖྗ͔Β༩͑ΒΕΔ wۭന۠Γ wB C͕ۮͳΒ&WFOΛحͳΒ0EEΛग़ྗ wB C ֓ཁ
wඪ४ೖྗΛ͏VTFTUEJP wۮ͔Ͳ͏͔JG B C ϙΠϯτ "#$"1SPEVDU w
IUUQTBUDPEFSKQDPOUFTUTBCDTVCNJTTJPOT ղྫ
"#$"1SPEVDUղྫ
"#$"1SPEVDUղྫ ೖྗΛָʹ͍ͨ͠ʂ
ۭനɾվߦ͝ͱʹೖྗΛಘΔؔ
ۭനɾվߦ͝ͱʹೖྗΛಘΔؔ w 3VTUͰڝٕϓϩάϥϛϯάͷೖྗΛεοΩϦهड़͢ΔϚΫϩ2JJUB CZͨͳ͜;͞Μ w IUUQTRJJUBDPNUBOBLIJUFNTCBDDBDEEBD ߋʹߴػೳͳೖྗิॿ Θ͔Γ͍͢
"#$"1BSLJOH IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@B
"#$"1SPEVDU wறंͷྉۚϓϥϯ͕छྨ wϓϥϯ5࣌ؒͰ" 5ԁ wϓϥϯ#ԁݻఆ wਖ਼/ " #͕༩͑ΒΕΔ w/࣌ؒறं͢Δͱ͖ͷ࠷҆ͷஈʁ
֓ཁ
wNJOؔVTFTUEDNQNJO wNJO B C ϙΠϯτ "#$"1SPEVDU
දతίϯςεταΠτ AtCoder Codeforces Google Code Jam ։࠵ස 1,2ճ/ि 6ճ͘Β͍/݄ 1ճ/
ࢀՃਓ/ճ 5000ਓ 10000ਓ 35000ਓ ։࠵ࠃ ຊ ϩγΞ - จ ຊޠ / ӳޠ ӳޠ ӳޠ Rust version 1.15.1 1.35.0 ະରԠ
Ϩϕϧ 100 ࢛ଇԋࢉ, จࣈྻૢ࡞ 200 ݅ذ, ϧʔϓ 300
ιʔτͳͲͷΞϧΰϦζϜͷ͕ࣝඞཁʹ 400 ~ ܭࢉྔͷݟੵΓ͕ඞཁʹ 2000Ҏ্ͷ
"#$# IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@C
"#$# wਖ਼B C͕ඪ४ೖྗ͔Β༩͑ΒΕΔ wۭന۠Γ wBͱCΛจࣈྻͱͯ͠ܨ͛ͨͱ͖ฏํ͔ʁ wྫlz? wฏํͳΒ:FTɺͦ͏Ͱͳ͍ͳΒ/PΛग़ྗ wB C
֓ཁ
wจࣈྻ݁߹GPSNBU l\^\^z B C w4USJOHUPJTJ[FTQBSTFJTJ[F VOXSBQ ϙΠϯτ "#$#
w YBͱCΛ݁߹ͨ͠ w JdY·ͰJ JYΛຬͨ͢ͷ͕ଘࡏ͢Δ͔ௐΔ w ଘࡏ͢ΔͳΒYฏํ ղྫ
"#$#ղྫ ͜ͷղ๏ͷܭࢉྔ0 Y ߋʹྑ͍ղ๏ ɾJd㲋YͰ୳ࡧ0 㲋Y ɾJʹ͍ͭͯೋ୳ࡧ0 MPHY
ܭࢉྔ ྫ 1ඵҎͰ O(1) ࢛ଇԋࢉͳͲ - O(n) n=10^8·Ͱ O(n^2) n=10^4·Ͱ
O(log n) ೋ୳ࡧͳͲ ͨ͘͞Μ O(n log n) ιʔτͳͲ n=10^5·Ͱ ܭࢉྔ w0 O Oճܭࢉ͢ΔͳΒ0 O wఆഒແࢹOճܭࢉ͢Δͱͯ͠0 O #JH0ه๏
"#$#7BSJFE IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@C
"#$#7BSJFE wӳখจࣈ͔ΒͳΔจࣈྻ4͕༩͑ΒΕΔ w4ʹؚ·ΕΔจࣈ͕શͯҟͳΔ͔Ͳ͏͔ wҟͳΔͳΒZFTɺͦ͏Ͱͳ͍ͳΒOPΛग़ྗ w4ͷ͞ ֓ཁ
"#$#7BSJFEղྫ w4USJOHT<J>ͷΑ͏ʹจࣈͷऔಘ͕Ͱ͖ͳ͍ w4USJOH͔Β7FDDIBSʹม͢Δ ϙΠϯτ
"#$$1SJTPO IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@D
"#$$1SJTPO w/ຕͷ*%Χʔυ .ຕͷήʔτ wήʔτ*%ΧʔυͰ௨ΕΔ wJ൪ͷήʔτ-@Jd3@J൪ͷ*%ΧʔυͰ௨ΕΔ wͲΕ͔͍ͭ࣋ͬͯΕ͍͍ wຕ͚ͩͰશήʔτΛ௨աͰ͖Δ*%ΧʔυԿຕ͔ w/? .?
w-@J3@J/ ֓ཁ
4BNQMF ID1 ID2 ID3 ID4 G1 G2 /. -@ 3@
-@ 3@ ൪ͱ൪ͷ*%Χʔυ͕શήʔτΛ௨ΕΔ
4BNQMF ID1 2 3 4 5 6 7 8 9
10 G1 G2 G3 ൪ͷ*%ΧʔυͷΈશήʔτΛ௨ΕΔ
"#$$1SJTPOղྫ
"#$$0UPTIJEBNB IUUQTBUDPEFSKQDPOUFTUTBCDUBTLTBCD@D
"#$$0UPTIJEBNB wԁࡳɺԁࡳɺԁࡳ͕ແݶʹ͋Δ w͓ࡳ͕/ຕɺ߹ܭ:ԁ wԁࡳYຕɺԁࡳZຕɺԁࡳ[ຕͱ͢Δ w༗ΓಘΔຕͷ߹ͤͭΛग़ྗ w:ԁͳΒɺ Y Z [
ͳͲ ֓ཁ
5-&ղ
5-&ղ0 O? O? ?ؒʹ߹Θͳ͍
"$ղ0 O?
·ͱΊ
·ͱΊ wѹతΞτϓοτ͕Ͱ͖Δ wܭࢉྔ͕ݟੵΕΔΑ͏ʹͳΔ wΞϧΰϦζϜͱσʔλߏʹৄ͘͠ͳΕΔ w࣮ྗ͕ఆྔԽ͞ΕΔ wԿΑΓָ͍͠ w࣮ߦʹ͔͔Δॲཧ͕ඵͰͰ͖ͨΓ wʹʹίʔσΟϯάεϐʔυ͕͘ͳͬͨΓ
͓·͚ʢPKʹΑΔࣗಈఏग़ʣ IUUQTHJUIVCDPNNJOBNJOBPBUDPEFSSVTUCMPCNBTUFSWTDPEFUBTLTKTPO IUUQTHJUIVCDPNLNZLPOMJOFKVEHFUPPMT