SlideShare une entreprise Scribd logo
1  sur  21
いい加減問題  を解いたら?
北海道大学大学院 情報科学研究科
修士2年 井上祐馬
13年6月8日土曜日
• 井上 祐馬
• 北海道大学 情報科学研究科 M2
• TwitterとかプロコンのID: @Darsein
• 研究: おねえさんの救出 πDD
• 好きなもの:あずにゃん、ドーナツ
• ICPC 2010,2012 アジア地区予選出場
• TopCoder SRM Rate 1638 (2013/06/03現在)
自己紹介
13年6月8日土曜日
僕はこの辺の住人
13年6月8日土曜日
今日の話はたぶん
この辺の人向け?
13年6月8日土曜日
元ネタ
• この辺
• ハラスメントを受けてるのは僕です!!!
13年6月8日土曜日
本題
• 昨今、国内予選突破には 3問速解き∼4問 必要
• 「Dクラスの問題を解けるか」が鍵
• もちろんA,B,Cをしっかり通せることも大事
年 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
突破
ライン
1+ 2 2+ 2+ 3 3 3 3+ 3 3+ 3+ 3+
13年6月8日土曜日
Dは……
•DarseinのD!!!
•DFSのD!!!
•DijkstraのD!!!
•Dynamic ProgrammingのD!!!
13年6月8日土曜日
近年の動向
年 2007 2008 2009 2010 2011 2012
C シミュレーション DFS+構文解析 DFS DP DFS シミュレーション
D ダイクストラ ダイクストラ ダイクストラ DFS DP ダイクストラ
E 幾何 幾何 マッチング DFS/ダイクストラ DP 幾何+ダイクストラ
13年6月8日土曜日
近年の動向
•ネタではない!
•Dを制す者はD問題を制す!!!
•Dを制す者は国内予選を制す!!!!!
年 2007 2008 2009 2010 2011 2012
C シミュレーション DFS+構文解析 DFS DP DFS シミュレーション
D ダイクストラ ダイクストラ ダイクストラ DFS DP ダイクストラ
E 幾何 幾何 二部マッチング DFS/ダイクストラ DP 幾何+ダイクストラ
13年6月8日土曜日
DFS(Depth-First Search)
•新しく見つけた場所をどんどん展開し
て調べていく探索
= LIFO = スタック
•再帰関数で比較的簡易に実装可能 1
5
4
6
3
7
2
vector<int> graph[V];
void rec(int x){
if(visit[x])return;
visit[x] = true;
for(int i=0;i<graph[x].size();i++)rec(graph[x][i]);
}
13年6月8日土曜日
BFS(Breath-First Search)
• 一番最初に見つけたものから順に調べてい
く探索
= FIFO = キュー
• キューを使ったループを用いる
• 最短路を保証
1
7
5
3
4
6
2vector<int> graph[V];
queue<int> q;
while(q.size()){
int x = q.front(); q.pop();
if(visit[x])continue;
visit[x] = true;
for(int i=0;i<graph[x].size();i++)q.push(graph[x][i]);
}
13年6月8日土曜日
ダイクストラ法
• 辺コスト付きグラフの最短路アルゴリズム
• 次に行ける未到達地点へのパスのうち最短のものを選択し
続ける貪欲法
• O(V2)。最短のものを選ぶのにヒープを使うとO(ElogV)
0
?
?
5
3
?
2
52
1
4
4
3
3
0
?
6
5
3
?
2
52
1
4
4
3
3
到達済
未到達だけど
次に行ける
13年6月8日土曜日
動的計画法
•一回りサイズの小さい問題の答えから
大きな問題の答えを導きだす手法
•同じ状態では答えが変わらないことを
利用して、値をメモして無駄を省く
•例:ナップサック問題
• アイテムがn個あり、それぞれ価値がvi, 重さがwi
• 総重量S以下での価値の総和の最大値を求めよ
13年6月8日土曜日
動的計画法
• dp[i][j]: i番目までのアイテムで総重量がちょ
うどjになるときの最大価値
• dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])
• 例: n=4, S=10, {(9,8), (3,3), (7,6), (8,5)}
i\j 0 1 2 3 4 5 6 7 8 9 10
0 0 - - - - - - - - - -
1 0 - - - - - - - 9 - -
2 0 - - 3 - - - - 9 - -
3 0 - - 3 - - 7 - 9 10 -
4 0 - - 3 - 8 7 - 11 10 -
13年6月8日土曜日
動的計画法
• dp[i][j]: i番目までのアイテムで総重量がちょ
うどjになるときの最大価値
• dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])
• 例: n=4, S=10, {(9,8), (3,3), (7,6), (8,5)}
i\j 0 1 2 3 4 5 6 7 8 9 10
0 0 - - - - - - - - - -
1 0 - - - - - - - 9 - -
2 0 - - 3 - - - - 9 - -
3 0 - - 3 - - 7 - 9 10 -
4 0 - - 3 - 8 7 - 11 10 -
13年6月8日土曜日
0,0
1,0
2,0
3,0
4,0
2,3
3,3
4,3 4,5 4,6
3,6
2,8
1,8
3,8
4,8
3,9
4,9
動的計画法
• dp[i][j]: i番目までのアイテムで総重量がちょ
うどjになるときの最大価値
• dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])
• 例: n=4, S=10, {(9,8), (3,3), (7,6), (8,5)}
13年6月8日土曜日
0,0
1,0
2,0
3,0
4,0
2,3
3,3
4,3 4,5 4,6
3,6
2,8
1,8
3,8
4,8
3,9
4,9
動的計画法
• DPはグラフだった!!!
• この辺の話は@tayama0324さんのDPの話
という記事を読むとよい。DP観が変わる。
13年6月8日土曜日
結局 D はグラフ
•DFSは探索木( グラフ)を適当な順番に
探索
•BFSは探索木を根に近い方から探索
•ダイクストラはコスト付きグラフを近
い方から探索
•DPは状態グラフをループ順に探索
13年6月8日土曜日
D の大雑把な分類
ループ順
始点に
近い方
始点から
遠い方
順は任意
or
あらゆる順
コストなし
(一定)
DP BFS メモ化DFS DFS
コストあり DP ダイクストラ メモ化DFS DFS
13年6月8日土曜日
探索問題の解き方
• グラフを構築します( ◠‿◠ )
 どのような状態を頂点にするか、辺にあたる遷移はどう
なっているか
• グラフの特徴を分析します(́・・`)
 探索すべき順序に規則などはあるか
• 探索アルゴリズムを考えます( ◠◠ )
 ICPCならだいたいさっきのDFS,BFS,Dijkstra,DPくらい
• 実装します(́・・`)
 ガンバルンバ∼(^o^)
• AC!!
 ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
13年6月8日土曜日
まとめ
•D問題級の問題は国内予選突破の肝
•傾向として、DFS,Dijkstra,DP対策が必要
•でも本質は全部 グラフ探索
•グラフの問題を死ぬほど解いて特徴を掴もう
• DFS系はICPCはじめいろんなとこで出る
• Dijkstra問題はICPC、PCKあたりが多い
• DP問題はSRMやJOIあたりにいっぱい
13年6月8日土曜日

Contenu connexe

En vedette

Revisiting floorplan representation
Revisiting floorplan representationRevisiting floorplan representation
Revisiting floorplan representationYuma Inoue
 
2年生向けICPC紹介資料
2年生向けICPC紹介資料2年生向けICPC紹介資料
2年生向けICPC紹介資料Yuma Inoue
 
Graph Clustering on Missing Data
Graph Clustering on Missing DataGraph Clustering on Missing Data
Graph Clustering on Missing DataYuma Inoue
 
Thesis Defence for Doctor of Information Science
Thesis Defence for Doctor of Information ScienceThesis Defence for Doctor of Information Science
Thesis Defence for Doctor of Information ScienceYuma Inoue
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~Yuma Inoue
 
博士論文執筆の流れ
博士論文執筆の流れ博士論文執筆の流れ
博士論文執筆の流れYuma Inoue
 

En vedette (9)

Arc 010 d
Arc 010 dArc 010 d
Arc 010 d
 
Revisiting floorplan representation
Revisiting floorplan representationRevisiting floorplan representation
Revisiting floorplan representation
 
2年生向けICPC紹介資料
2年生向けICPC紹介資料2年生向けICPC紹介資料
2年生向けICPC紹介資料
 
Graph Clustering on Missing Data
Graph Clustering on Missing DataGraph Clustering on Missing Data
Graph Clustering on Missing Data
 
Planar graph
Planar graphPlanar graph
Planar graph
 
LP Duality
LP DualityLP Duality
LP Duality
 
Thesis Defence for Doctor of Information Science
Thesis Defence for Doctor of Information ScienceThesis Defence for Doctor of Information Science
Thesis Defence for Doctor of Information Science
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 
博士論文執筆の流れ
博士論文執筆の流れ博士論文執筆の流れ
博士論文執筆の流れ
 

Dernier

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Dernier (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

Senshu lt