SlideShare a Scribd company logo
goto busters
  原案 : fura2
 解答 : lyoz, fura2
  解説 : fura2
問題概要
●   ラベル文と goto 文のみからなる C 言語のソース
    コードが与えられる

●   プログラムが無限ループに陥らずに終了するため
    には、最小でいくつの goto 文を消せばいいか?
解法
●   グラフっぽいのでグラフにしてみる
解法
●   頂点 1 からスタートして頂点 g まで行くための最
    小コストを求める問題、とみなせる
    –   赤い辺が出ている場合、コスト 0 で赤い辺を通るかコス
        ト 1 で黒い辺を通るかのいずれか
    –   黒い辺だけの場合、コスト 0 で黒い辺を通る
解法
●   ようするに最短経路問題です
    ➔   Dijkstra 法で解ける!

●   今回の場合、コストが 0 と 1 だけなので、0-1 BFS
    と呼ばれている手法でも解くことができます
        ふつうの BFS で Queue を使うところを、Deque を使って、コス
        ト 0 の辺は前に追加、コスト 1 の辺は後ろに追加、とやる
提出状況
●   AC Rate
    –   31.88 % (22/69)


●   First Acceptance
    –   Onsite: wakaba_to_momiji (29 min)
    –   All: wakaba_to_momiji (29 min)

More Related Content

Viewers also liked

Kth
KthKth
Kth
oupc
 
Segpair
SegpairSegpair
Segpair
oupc
 
Comment
CommentComment
Comment
oupc
 
Rmq
RmqRmq
Rmq
oupc
 
Replace
ReplaceReplace
Replace
oupc
 
Magical
MagicalMagical
Magical
oupc
 
Permutation
PermutationPermutation
Permutation
oupc
 
One
OneOne
One
oupc
 
Cube
CubeCube
Cube
oupc
 
Gcd
GcdGcd
Gcd
oupc
 
Sort
SortSort
Sort
oupc
 
Paren
ParenParen
Paren
oupc
 
Palin
PalinPalin
Palin
oupc
 
Sharp2sat
Sharp2satSharp2sat
Sharp2sat
oupc
 
Trip
TripTrip
Trip
oupc
 
Sanpo
SanpoSanpo
Sanpo
oupc
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
 

Viewers also liked (18)

Kth
KthKth
Kth
 
Segpair
SegpairSegpair
Segpair
 
Comment
CommentComment
Comment
 
Rmq
RmqRmq
Rmq
 
Replace
ReplaceReplace
Replace
 
Magical
MagicalMagical
Magical
 
Permutation
PermutationPermutation
Permutation
 
One
OneOne
One
 
Cube
CubeCube
Cube
 
1
11
1
 
Gcd
GcdGcd
Gcd
 
Sort
SortSort
Sort
 
Paren
ParenParen
Paren
 
Palin
PalinPalin
Palin
 
Sharp2sat
Sharp2satSharp2sat
Sharp2sat
 
Trip
TripTrip
Trip
 
Sanpo
SanpoSanpo
Sanpo
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 

More from oupc

Knapsack
KnapsackKnapsack
Knapsack
oupc
 
Game
GameGame
Game
oupc
 
Four op
Four opFour op
Four op
oupc
 
Divisor
DivisorDivisor
Divisor
oupc
 
Division
DivisionDivision
Division
oupc
 
Anagram
AnagramAnagram
Anagram
oupc
 
Comment
CommentComment
Comment
oupc
 

More from oupc (8)

Knapsack
KnapsackKnapsack
Knapsack
 
Game
GameGame
Game
 
Four op
Four opFour op
Four op
 
Divisor
DivisorDivisor
Divisor
 
Division
DivisionDivision
Division
 
Anagram
AnagramAnagram
Anagram
 
A
AA
A
 
Comment
CommentComment
Comment
 

Goto

  • 1. goto busters 原案 : fura2 解答 : lyoz, fura2 解説 : fura2
  • 2. 問題概要 ● ラベル文と goto 文のみからなる C 言語のソース コードが与えられる ● プログラムが無限ループに陥らずに終了するため には、最小でいくつの goto 文を消せばいいか?
  • 3. 解法 ● グラフっぽいのでグラフにしてみる
  • 4. 解法 ● 頂点 1 からスタートして頂点 g まで行くための最 小コストを求める問題、とみなせる – 赤い辺が出ている場合、コスト 0 で赤い辺を通るかコス ト 1 で黒い辺を通るかのいずれか – 黒い辺だけの場合、コスト 0 で黒い辺を通る
  • 5. 解法 ● ようするに最短経路問題です ➔ Dijkstra 法で解ける! ● 今回の場合、コストが 0 と 1 だけなので、0-1 BFS と呼ばれている手法でも解くことができます ふつうの BFS で Queue を使うところを、Deque を使って、コス ト 0 の辺は前に追加、コスト 1 の辺は後ろに追加、とやる
  • 6. 提出状況 ● AC Rate – 31.88 % (22/69) ● First Acceptance – Onsite: wakaba_to_momiji (29 min) – All: wakaba_to_momiji (29 min)