Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
ゆくKotlin くるRust
exoego
1
160
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
Grafana:建立系統全知視角的捷徑
blueswen
0
220
Developing static sites with Ruby
okuramasafumi
0
330
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
160
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3k
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
900
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
970
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
120
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
31
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
980
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
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