AT_agc077_a.[AGC077A] Reverse A…B

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A, B からなる長さ $ N $ の文字列 $ X,Y $ が与えられます. $ X $ の $ i $ 文字目を $ X_i $ と表すことにします.

以下の操作を $ 0 $ 回以上 $ \left\lfloor \frac{N}{2} \right\rfloor $ 回以下行うことで, $ X $ を $ Y $ に一致させることができるか否かを判定してください.

  • $ 1\leq l < r \leq N $ かつ $ X_l= $ A かつ $ X_r= $ B なる整数組 $ (l, r) $ を選ぶ. $ X $ の $ l $ 番目から $ r $ 番目までの要素を反転する.ここで,「 $ X $ の $ l $ 番目から $ r $ 番目までの要素を反転する」とは, $ X_l,X_{l+1},\ldots,X_{r-1},X_r $ を $ X_r,X_{r-1},\ldots,X_{l+1},X_l $ に同時に置き換えることを言う.

$ X $ を $ Y $ に一致させることが可能な場合には,そのような手順をひとつ出力してください.

$ T $ 個のテストケースが与えられるので,それぞれについて答えを求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

$ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $

各テストケースは以下の形式で与えられる.

$ N $ $ X $ $ Y $

输出格式

$ \mathrm{case}_1,\mathrm{case}_2,\ldots,\mathrm{case}_T $ に対する答えを順に以下の形式で出力せよ.

$ 0 $ 回以上 $ \left\lfloor \frac{N}{2} \right\rfloor $ 回以下の操作で $ X $ を $ Y $ に一致させることが不可能な場合には,No と出力せよ.

可能な場合には,操作手順を次の形式で出力せよ.

Yes $ K $ $ l_1 $ $ r_1 $ $ l_2 $ $ r_2 $ $ \vdots $ $ l_K $ $ r_K $

ここで $ K $ は操作回数で, $ l_i,r_i $ は $ i $ 回目の操作で選ぶ整数 $ l,r $ を表す.これらは次を満たす必要がある.

  • $ 0 \leq K \leq \left\lfloor \frac{N}{2} \right\rfloor $
  • $ 1 \leq l_i < r_i \leq N $

条件を満たす操作手順が複数存在する場合には,そのどれを出力しても正解と見なされる.

输入输出样例

  • 输入#1

    3
    5
    ABAAB
    ABBAA
    4
    AAAA
    BBBB
    10
    BABBAABBAA
    BBBBAAABAA

    输出#1

    Yes
    1
    3 5
    No
    Yes
    3
    2 7
    4 6
    3 5

说明/提示

Sample Explanation 1

$ 1 $ 番目のテストケースでは, $ X_3= $ A かつ $ X_5= $ B なので, $ X $ の $ 3 $ 番目から $ 5 $ 番目までの要素を反転する操作を行うことができます.この操作を行うと, $ X $ は ABBAA になり, $ Y $ と一致します.

$ 2 $ 番目のテストケースでは,どのように操作を行っても $ X $ を $ Y $ に一致させることができません.

Constraints

  • $ 1 \leq T \leq 2.5\times 10^5 $
  • $ 2 \leq N \leq 5\times 10^5 $
  • 一つのテストケースに含まれる $ N $ の総和は $ 5\times 10^5 $ 以下
  • $ X,Y $ は A, B からなる長さ $ N $ の文字列
  • 入力される数値は全て整数

输入解题思路,AI测评打分。不知道怎么写?

首页