【POI2010] CHO-ハムスター


与えられた\(N- \)文字列(N- \のLeq 200 \(\)がある、)、\ (\ | S | SUM。\のLeq 5 ^ 10 \) 彼らはソリティアように、ここでエンドツーエンドの同じ部分には、二つの単語をカバーします。Qを含む\(m個\)長い文字列の最小の長さ(繰り返しが、使用されていません)。(\ (M \ ^のLeq 10. 9 \)


問題解決のためのアイデア

この質問は、本質的にこのモデルは、グラフ理論に変換することができています。私たちは、別のポイントに1ポイントのコストは数Jieshangquの長さの増加ということで、各文字列のポイントを想像することができます。このグラフは、(また、リングから)環と導かれます。所望の表題与える\(m個\)は最小の長さを文字列だけを通ってなる\(m個\)最短パスポイント(元の長さをカウントする開始点)。

従って、2つの問題がある:一つはどのくらいの速前処理右側では、第二は、急速最短経路長を決定する方法です。

最初の質問、オープンO2の暴力の前に。正解は、ACオートマトンを必要とされます。

第二の問題は、古典的な問題である-を介して\(K \)最短経路側、溶液は迅速電力最適化フロイド行列です。精巧:

絵、第隣接行列のため。隣接行列\(G_ {I、Jは} \) ポイントとして理解することができる\(Iは\)ポイント\(J \)だけ最短側部の後。今必要なポイントであれば\(Iは\)ポイント\(J \)双方の最短が行われるべき直後\(G「_ {I、 J} = \分\ {G_ {I、K} +を{K G_、J} \} \)\(g 'は\)右両側を横断し、そう三方かどうかを知りたい' _ {I(G \ 'J} = \分\ {G' _ {I、K} + G_ {K 、J} \} \) そして私たちが持っている\(G ^ m_Low {I、J} = \ \分{^ {M-G 1} _ {I、K}、{K + G_、J} \} \)これは、行列乗算の変形であるが、幸いそれはまだ連想です。したがって、我々は直接\(グラム\)がそれに迅速に電源をマトリックスありません。

これは、標準の行列迅速なパワーで、我々がいることを言及する価値がある\(ANS \)単位行列に初期化されます。そして今、我々は、行列の掛け算の定義を変更した、マトリックス構造手段はまた、特定の変更を加える必要があります:
\ [\ {0}&\ inftyの&\ cdots&\ inftyの\\ \ inftyの&0&\ cdots始めるbmatrix &\ inftyの\\ \ vdots&\ vdots&\ ddots&\ vdots \\ \ inftyの&\ inftyの&\ cdots&0 \端{bmatrix} \] すなわち対角線は0であり、残りは、\ inftyの(\ \ )

おすすめ

転載: www.cnblogs.com/qixingzhi/p/11233027.html