G - Typical Path Problem Editorial by ansain

block-cut-treeを使った解法

誰も書かなかったので書きます。block-cut-treeの説明と用語はここら辺参照してください。

https://ei1333.hateblo.jp/entry/2020/03/25/010057

与えられたグラフGのblock-cut-treeを作成し、G´とします。

G´上で元のA,Cである間接点の頂点または元のA,Cが含まれる二重頂点連結成分の頂点を調べ、A´,C´とします。

①A´,C´を結ぶG´上のパスの頂点にBの関節点または、Bの二重頂点連結成分が含まれる二重頂点連結成分がある場合、条件を満たします。

②また、Bが関節点の場合、G´上のパスのいずれかの二重頂点連結成分とBの関節点の頂点が隣接する場合、条件を満たします。

③それ以外の場合条件を満たしません。

雑な証明ですが、①②の場合、Bの関節点と隣接するかBが含まれる二重頂点連結成分(Dとする)内でのパスを考えるとき、A´,C´パスのDの入り口→B→Dの出口とする単純パスは、Dが二重頂点連結成分であり関節点が無いことから可能です。他のパスで頂点が被ることもないので、可能です。

③の場合、A´,C´パスからBに寄り道する間にA´,C´パスとBの愛大にある関節点を必ず通ることから不可能です

posted:
last update: