Soumettre la recherche
Mettre en ligne
競技プログラミング頻出アルゴリズム攻略
•
52 j'aime
•
25,456 vues
K Moneto
Suivre
主に大学生の競技プログラミング初心者に向けて、最低限知っておくべきアルゴリズムを紹介しております。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 63
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
最適輸送の解き方
最適輸送の解き方
joisino
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Marp Tutorial
Marp Tutorial
Rui Watanabe
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
Recommandé
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
最適輸送の解き方
最適輸送の解き方
joisino
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Marp Tutorial
Marp Tutorial
Rui Watanabe
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
最適化超入門
最適化超入門
Takami Sato
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
Satoshi Hara
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
グラフと木
グラフと木
京大 マイコンクラブ
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
Yoichi Ochiai
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
最適輸送入門
最適輸送入門
joisino
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
naoto moriyama
Contenu connexe
Tendances
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
最適化超入門
最適化超入門
Takami Sato
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
Satoshi Hara
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
グラフと木
グラフと木
京大 マイコンクラブ
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
Yoichi Ochiai
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
最適輸送入門
最適輸送入門
joisino
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
naoto moriyama
Tendances
(20)
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
最適化超入門
最適化超入門
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
指数時間アルゴリズム入門
指数時間アルゴリズム入門
明日使えないすごいビット演算
明日使えないすごいビット演算
ゼロから始める転移学習
ゼロから始める転移学習
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
Union find(素集合データ構造)
Union find(素集合データ構造)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
グラフと木
グラフと木
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
暗号技術の実装と数学
暗号技術の実装と数学
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
色々なダイクストラ高速化
色々なダイクストラ高速化
最適輸送入門
最適輸送入門
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
競技プログラミング頻出アルゴリズム攻略
1.
競技プログラミング 頻出アルゴリズム攻略 2016.01.13 Author: Moneto (MATYLA-PG,
@Moneto_Tk) 10
2.
whoami •@Moneto_Tk •JOI出場経験あり •只の凡人老兵
3.
whoami • • • • •
4.
whoami • • • •
5.
whoami • • • • •
6.
競技プログラミングで 必要な知識
7.
アルゴリズムの知識 著名な問題やその定石 「変な」テクニック
8.
「変な」テクニック http://ichyo.jp/posts/2014-12-15-advent-calender/ • • •
9.
アルゴリズムの知識 著名な問題やその定石
10.
競技プログラミングで 必要なアルゴリズムの知識 • • • •
11.
競技プログラミングで 必要なアルゴリズムの知識 • • •
12.
今日の内容は その中でも基本的なもの
13.
DP Dynamic Programming 動的計画法
14.
BFS Breadth First Search 幅優先探索
15.
DFS Depth First Search 深さ優先探索
16.
取り扱う基準 • • •
17.
DP Dynamic Programming 動的計画法
18.
DP • • • •
19.
DP • • • •
20.
DP • • • • •
21.
DP • • • • •
22.
DP • • • • •
23.
Tips intの値を一瞬でも超えることが 分かった時点で 絶対にlong longを使おう 実力者でも気をつけるべきミス
24.
DP • • • • •
25.
Fib(n) • public static Int64
fib_rec(int n) { if (n == 0) return 0; else if (n == 1) return 1; return fib_rec(n - 1) + fib_rec(n - 2); }
26.
Fib(n) • public static Int64
fib_rec_m(int n) { if (n == 0) return 0; else if (n == 1) return 1; else if (table[n] != 0) return table[n]; else return table[n] = fib_rec_m(n - 1) + fib_rec_m(n - 2); }
27.
Fib(n) • public static Int64
fib_dp(int n) { int[] dp = new int[n]; dp[0] = 1; dp[1] = 1; for (int i = 0; i < n - 2; i++) { dp[i + 2] = dp[i] + dp[i + 1]; } return dp[n - 1]; } • • •
28.
Fib(n) 0 1 • •
29.
Fib(n) 0 1 1 • •
30.
Fib(n) 0 1 1
2 • • •
31.
Fib(n) 0 1 1
2 3 • • •
32.
Fib(n) 0 1 1
2 3 5 8 13 21 34 • • •
33.
BFS Breadth First Search 幅優先探索
34.
BFS • • • •
35.
BFS 1
36.
BFS 1 子ノードが見つかったら キューに格納
37.
BFS 1 2 3 子ノードが見つかったら キューに格納
38.
BFS 1 2 3 4
5 6 7
39.
Best-First • • • •
40.
Best-First • • • • •
41.
RTS http://neetpia.sakura.ne.jp/works/GensouSenryakutan/1.jpg
42.
RTS http://neetpia.sakura.ne.jp/works/GensouSenryakutan/1.jpg 行き先を指定すると 最適な移動経路を計算し その通りに移動してくれる 考慮するべき条件 高低差(崖は迂回する) 建造物、森林、河川など
43.
DFS Depth First Search 深さ優先探索
44.
DFS • • • •
45.
DFS 1
46.
DFS 1 2 分岐が見つかったら スタックに格納
47.
DFS 1 2 3 分岐が見つかったら スタックに格納
48.
DFS 1 2 3 4 分岐が見つかったら スタックに格納
49.
DFS 1 2 3 4 5
スタックの処理順番 「先入れ後出し」
50.
DFS 1 2 7 3
6 4 5
51.
根底の考え方は どれも簡単
52.
手頃な練習 • • • • •
53.
Tips • • •
54.
手頃な練習 • • • • •
55.
手頃な練習 • • • • •
56.
Tips • • •
57.
ICPCの国内強豪は JOI出身者が多い
58.
「JOI出身者」のレベルが いかに高いか
59.
ちょっと • •
60.
もうちょっと • • •
61.
更にもうちょっと • • • •
62.
というわけで • • • •
63.
お疲れ様でした
Télécharger maintenant