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
rf-castle
July 08, 2022
0
50
Rustで競技プログラミング
rf-castle
July 08, 2022
Tweet
Share
More Decks by rf-castle
See All by rf-castle
Alter_Linuxのすすめ
rfcastle
0
130
Python_Parrotと学ぶPythonの並行実行.pdf
rfcastle
0
88
PythonParrotと学ぶPythonの並列実行
rfcastle
0
64
Nuxt jsに触れてみた
rfcastle
0
28
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Docker and Python
trallard
44
3.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Optimizing for Happiness
mojombo
379
70k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Transcript
RustでAtcoder 会津大学 田城幸太
自己紹介 • 会津大学 学部4年 • 田城幸太 • 通りすがりのPythonParrot(RustParrotに変身中) • STETCH,
Zli所属 • 嫁:羽黒(艦これ) • 妹:チノ(ごちうさ) • 相棒:キィラン(ゼノンザード) • Twitter: @kouta_tashiro
アジェンダ • 競技プログラミング・Atcoderってなぁに? • Rustってなぁに? • Why Rust? • Rustの勉強の仕方
• 便利ツール
競技プログラミング・Atcoderってなぁに? • 競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要 求を満足するプログラムを正確に記述することを競う。 • (Wikipediaより引用) • 競技プログラミングコンテストサイト。 • コンテストと呼ばれ、決められた時間内にいかに多く・早く問題を解けるかを競う
• 良い成果を出すとレートが上がるレート制。 • ある程度レートが上がると色が付く。
実際に、 Atcoderの問題を 1つ解いてみましょう。
Atcoderとは? • 競技プログラミングサイト。 • 良い成果を出すとレートが上がるレート制。 • ある程度レートが上がると色が付く。 • 以下のコンテストが開かれている。 •
ABC:初心者向けコンテスト。土 or 日 の 21:00~に開かれている場合が多い。 • 制限時間100分 • ARC:中級者向けコンテスト。こちらも土 or 日 の 21:00開始が多い。 • 制限時間120分 • AGC:上級者向けコンテスト。不定期 • 制限時間180分 • かなりつよつよにならないと参加してもレート上がらない
Rustってなぁに? • プログラミング言語の一種。 • 特徴 • 静的型付け・コンパイラ言語 • コンパイラが優秀 •
型システムの推論が優秀 • 所有権システムによってGCなしのメモリ安全性 • イテレータやパターンマッチングなどの関数型言語の要素 • OptionやResultによるエラーハンドリング
Why Rust? • C/C++と同等以上の実行速度 • Pythonでやると、アルゴリズム的に正しくても、実行速度が不足して TLE(時間制限超過)になってしまいやすい • C/C++のような未定義動作がない
はじめよう。Rust • Rust books • Rustの公式チュートリアル。まずはここから! • https://doc.rust-jp.rs/book-ja/title-page.html • Rust
Examples • Rustのコード集。かゆいところに手が届く。 • https://doc.rust-jp.rs/rust-by-example-ja/ • Rustlings • 実践的な問題集、手を動かしながら覚えたいならこれ! • https://github.com/rust-lang/rustlings • Atcoder Beginner Contest • だいぶ慣れてきたら挑戦してみよう。 • 過去問も公開されているから、それを解くのもヨシ!
便利にしよう。Rustでの競技プログラミング。 • cargo-compete • プロジェクト作成、コードの自動テスト・提出をしてくれるCLI。
やってみた結果。 • 茶コーダーになりました(3/26)。 緑コーダーになりたいです。
まとめ • C++も良いが、たまにはRustで競プロしようぜ • 明日 21:00~からAtcoder Beginner Contestあるからみんな出ようね