H - 圧縮おみくじ (Compressed Omikuji) 解説 by maspy


https://github.com/yosupo06/library-checker-problems/issues/934

同じ長さの区間 2 つの \(k\) 番目の点同士をマージできるタイプの union find を使えばよいです。

アスタリスクの文字を \(x_0,\ldots x_{n-1}\) とするとき,

\[(x_0,\ldots,x_{n-1},x_{n-1},\ldots,x_0,a,b,\ldots,z)\]

という列を用意しておきます(まず,\(i\) 番目と \(2N-1-i\) 番目をマージします).条件はいたるところ,この列のある区間と区間の一致という形でそれをマージしていきます.

最後に,\(a,b,\ldots,z\) に相当する点の成分がすべて異なること場合に Yes、そうでない場合に No を出力します.

投稿日時:
最終更新: