E - Верный
Editorial
からまでの木X上のパス(,含む)上にあるアルファベット2つを入れ替える。
例えば、とを入れ替えると、パス上のはとなり、はとなる。
からまでの木Y上のパス(,含む)上にあるアルファベット2つを入れ替える。
例えば、とを入れ替えると、パス上のはとなり、はとなる。
木Xのからまでのパス(,含む)上にあるアルファベットを並べた文字列と、木Yのからまでのパス(,含む)上にあるアルファベットを並べた文字列が完全に一致するか、そうでないかを答える。
回のクエリを実行した直後の状態に戻す。
ただし、(このクエリを処理する前に処理したクエリの数)≧≧とする。
その次に、木Yについてのデータが与えられる。
その次に、クエリ数を指す整数が1行で与えられる。 その次の行は各クエリを意味する。
各木のデータは、以下の形式で与えられる。
次の1行に、長さの文字列sが与えられる。この文字列の文字目(≦<)は、木の頂点iに書かれている小文字を指す。
次のN-1行の各行は、木の辺を意味する。
とは、頂点と頂点(<≦)の間に辺があることを意味する。
各クエリは1行から与えられる。 まず、初めにクエリの種類を指す整数が与えられる。
Time Limit: 6 sec / Memory Limit: 512 MB
問題文
IOI2015の開催されたアルマトイは昔、Верный(ヴェールヌイ)という名前であった。
どうやらロシア語で「忠実な」とか「信頼できる」とかいった意味があるらしい。。
joisinoお姉ちゃんは、これを聞いて、部下が自分にいかに忠実かを試そうとした。
まず、木Xと木Yを用意した。各頂点はからまでの名前がついており、'a'から'j'までのどれかの小文字のアルファベットが一つ書かれている。
以下の操作を回行う。
例えば、とを入れ替えると、パス上のはとなり、はとなる。
例えば、とを入れ替えると、パス上のはとなり、はとなる。
ただし、(このクエリを処理する前に処理したクエリの数)≧≧とする。
制限
≦≦
≦≦
≦≦
配点
- この問題に部分点は存在しない。すべてのテストケースに正解すると点が得られる。
入力
入力は以下の形式で標準入力から与えられる。
木Xについてのデータ 木Yについてのデータ . . .始めに、木Xについてのデータが与えられる。
その次に、木Yについてのデータが与えられる。
その次に、クエリ数を指す整数が1行で与えられる。 その次の行は各クエリを意味する。
各木のデータは、以下の形式で与えられる。
. . .データ内の1行目に、木の頂点数が整数で与えられる。
次の1行に、長さの文字列sが与えられる。この文字列の文字目(≦<)は、木の頂点iに書かれている小文字を指す。
次のN-1行の各行は、木の辺を意味する。
とは、頂点と頂点(<≦)の間に辺があることを意味する。
各クエリは1行から与えられる。 まず、初めにクエリの種類を指す整数が与えられる。
- が0の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、木Xの頂点,間のパス上の頂点(,含む)それぞれにおいて、が書かれている場合に、が書かれている場合に書き換えることを意味する。 - が1の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、木Yの頂点,間のパス上の頂点(,含む)それぞれにおいて、が書かれている場合に、が書かれている場合に書き換えることを意味する。 - が2の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、(木Xの頂点,間のパス上の頂点(,含む)に書かれている文字を、から順に並べたときの文字列)と(木Yの頂点,間のパス上の頂点(,含む)に書かれている文字を、から順に並べたときの文字列)が一致するかしないかを答えることを意味する。 - が3の時
空白区切りでこの後に整数が与えられる。 これは、木Xと木Yを、回クエリを処理した直後の状況に戻すことを意味する。
出力
それぞれのクエリにおいてが2のとき、文字列が一致する場合、一致しない場合を1行に出力せよ。
なお入力全体の最後には改行を忘れないこと。
入力例Copy
Copy
4 ckdl 0 2 0 1 1 3 4 lckd 2 1 1 3 2 0 4 2 2 3 3 0 2 2 3 0 3 2 3 2 0 3 2 3 2 3 0
出力例Copy
Copy
YES NO YES NO