CF2030D QED's Favorite Permutation
题目描述
你有一个长度为 $n$ 的排列 $p$,也就是说,$1$ 到 $n$ 中的每个正整数都在 $p$ 中出现恰好一次。同时你还有一个长度也为 $n$ 的字符串 $s$,其中仅含 `L` 和 `R` 两种字符。(排列和字符串的下标均从 $1$ 开始编号)
定义一次操作为:任意选择一个编号 $i$($1 \le i \le n$),在这之后:
* 如果 $s_i$ 为 `L`,则交换 $p_i$ 和 $p_{i-1}$。(保证 $s_1$ 不为 `L`)
* 如果 $s_i$ 为 `R`,则交换 $p_i$ 和 $p_{i+1}$。(保证 $s_n$ 不为 `R`)
接下来给出 $q$ 次询问,在第 $i$ 次询问中($1 \le i \le q$),你将会得到一个编号 $x_i$($1 \le x_i \le n$),表示如果 $s_{x_i}$ 为 `L`,则你需要将其改为 `R`;反之如果 $s_{x_i}$ 为 `R`,则你需要将其改为 `L`。在修改完成之后,你还需要判断能否通过上述操作使得排列 $p$ 单调递增(操作次数不限),即对任意的 $1 \le i \le n-1$,都有 $p_i < p_{i+1}$。
**询问中对字符串 $\bm{s}$ 的修改均为永久性的,会在询问结束后保留。在回答询问的过程中,你不应对排列 $\bm{p}$ 进行任何真实的操作。**
输入格式
第一行一个正整数 $t$($1 \le t \le 10^4$),表示测试数据的组数。对于每组测试数据而言:
第一行包含两个正整数 $n,q$($1\le n,q \le 2 \times 10^5$,$n \ge 3$),分别表示排列的长度和询问的次数。
第二行包含 $n$ 个正整数 $p_1,p_2,...,p_n$($1 \le p_i \le n$),表示排列 $p$。
第三行包含一个长度为 $n$ 的字符串 $s$,保证 $s_i \in \{ \texttt{L}, \texttt{R} \},s_1 = \texttt{R},s_n = \texttt{L}$。
接下来 $q$ 行,其中第 $i$ 行包含一个正整数 $x_i$($1 \le x_i \le n$),表示要修改的字符的编号。
保证所有测试数据中 $n$ 和 $q$ 的总和都不超过 $2 \times 10^5$。
输出格式
对于每个询问,在单独一行输出一个字符串表示答案。如果在修改完成之后能通过上述操作使得排列 $p$ 单调递增(操作次数不限),则输出 `YES`;否则输出 `NO`。评测时不区分大小写,例如 `Yes`,`yES` 等均被认为与 `YES` 等价。
### 【样例解释】
对于第一组测试数据,在第一次询问之后,$s = \texttt{RRRLL}$。我们可以通过如下操作序列使得排列 $p$ 单调递增:
* 初始时,$p=[1,4,2,5,3]$。
* 选择 $i=2$ 进行一次操作,由于 $s_2 = \texttt{R}$,所以我们交换 $p_2$ 和 $p_3$,得到 $p=[1,2,4,5,3]$。
* 选择 $i=5$ 进行一次操作,由于 $s_5 = \texttt{L}$,所以我们交换 $p_5$ 和 $p_4$,得到 $p=[1,2,4,3,5]$。
* 选择 $i=4$ 进行一次操作,由于 $s_4 = \texttt{L}$,所以我们交换 $p_4$ 和 $p_3$,得到 $p=[1,2,3,4,5]$。此时,排列 $p$ 已经单调递增。
因此,对于第一次询问你应当输出 `YES`。
对于第一组测试数据可以证明,在三次询问对字符串 $s$ 的修改完成之后,不可能再通过上述操作使得排列 $p$ 单调递增。因此,对于第三次询问你应当输出 `NO`。
Translated by FruitWasTaken
说明/提示
In the first testcase, $ s = \texttt{RRRLL} $ after the first query. QED may sort $ p $ using the following operations:
- Initially, $ p = [1,4,2,5,3] $ .
- Select $ i = 2 $ and swap $ p_2 $ with $ p_{3} $ . Now, $ p = [1,2,4,5,3] $ .
- Select $ i = 5 $ and swap $ p_5 $ with $ p_{4} $ . Now, $ p = [1,2,4,3,5] $ .
- Select $ i = 4 $ and swap $ p_4 $ with $ p_{3} $ . Now, $ p = [1,2,3,4,5] $ , which is in non-decreasing order.
It can be shown that it is impossible to sort the array after all three updates of the first testcase.