Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rustで始める競技プログラミング
Search
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.4k
Account/Balanceモデルのシャーディングと課題点
minaminao
1
780
Other Decks in Programming
See All in Programming
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
180
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
110
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
130
tparseでgo testの出力を見やすくする
utgwkk
2
260
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
430
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.2k
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
110
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
440
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
410
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
110
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
14
ラッコキーワード サービス紹介資料
rakko
0
1.7M
Statistics for Hackers
jakevdp
799
230k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
320
Thoughts on Productivity
jonyablonski
73
5k
Chasing Engaging Ingredients in Design
codingconduct
0
78
Utilizing Notion as your number one productivity tool
mfonobong
2
180
Git: the NoSQL Database
bkeepers
PRO
432
66k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Speed Design
sergeychernyshev
33
1.4k
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