ABC197 F - Construct a Palindrome
問題はこちら
問題概要
解説
回文の性質(というか定義)と,始点・終点が固定という条件からいろいろ考えてみると,
頂点と頂点
から同じ文字が書かれた辺を,上の条件を満たすまで辿ればとりあえず回文になる.
同時に辿って行くのは難しいので,二つの頂点を(のように)一つの頂点にまとめるようなグラフを作ることで,同じ文字が書かれた辺の対ごとに新たなグラフに辺を張ればいい.
例:元のグラフで間の辺と
間の辺に書かれた文字が同じ場合,新たなグラフでは
間,
間に辺を張る.

元のグラフでから
に,
から
に行くことは新たなグラフで
から
に行くことに対応する.
同様に,元のグラフでから
に,
から
に行くことは新たなグラフで
から
に行くことに対応する.
このようなグラフでのから
や
(
は隣接する) までの最短距離を求める問題になる.同じ文字が書かれた辺の対に張られた辺(例の
間など)のコストを
,新たに頂点
を作り,
から
にコスト
の辺を張り,
から
にコスト
の辺を張ることで,
から
への最短コストが答えとなる.