CF2049B pspspsps

题目描述

# pspspsps 猫会被 $ pspspsps $ 所吸引,但 $ Evirir $ 作为一条有尊严的龙,只被具有奇怪特定要求的 $ pspspsps $ 所吸引...... 给定一个长度为 $ n $ 的字符串 $ s = s_1s_2 \dots s_n $ ,由字符 $ p、s $ 和 $.$(点)组成,确定长度为 $ n $ 的排列 $ ^{∗} $ $ p $ 是否存在,使得对于所有整数 $ i $ ( $ 1 \le i \le n $ ): - 如果 $ s_i $ 是 $ p $,那么 $ [p_1, p_2, \dots, p_i] $ 形成一个排列(长度为 $ i $ ); - 如果 $ s_i $ 是 $ s $,那么 $ [p_i, p_{i+1}, \dots, p_{n}] $ 形成一个排列(长度为 $ n-i+1 $ ); - 如果 $ s_i $ 为 $ . $(点),则没有其他限制。 $ ^{∗} $ 长度为 $ n $ 的排列是一个数组,由 $ n $ 个从 $ 1 $ 到 $ n $ 的任意顺序的不同的整数组成。例如,$ [2,3,1,5,4] $ 是排列,但 $ [1,2,2] $ 不是排列( $ 2 $ 在数组中出现两次),$ [1,3,4] $ 也不是排列( $ n=3 $ 但数组中有 $ 4 $)。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 $ t $ ( $ 1 \le t \le 10^4 $ )。测试用例的描述如下。 每个测试用例的第一行包含一个整数 $ n $ ( $ 1 \le n \le 500 $ ),长度为 $ s $ 。 每个测试用例的第二行包含一个长度为 $ n $ 的字符串 $ s $,该字符串由字符 $ p、s $ 和 $ . $ (点) 组成。 保证所有测试用例的 $ n $ 之和不超过 $ 5000 $ 。

输出格式

对于每个测试用例,在一行上输出 YES 或 NO。如果存在这样的排列,则输出 YES,否则输出 NO。 答案忽视字母大小写。例如,字符串 “yEs”、“yes”、“Yes” 和 “YES” 将会被判定正确。 ## 样例 #1 ### 样例输入 #1 ``` 9 4 s.sp 6 pss..s 5 ppppp 2 sp 4 .sp. 8 psss.... 1 . 8 pspspsps 20 .................... ``` ### 样例输出 #1 ``` YES NO YES YES NO NO YES NO YES ```

说明/提示

对于第一个测试用例,一个有效的排列是 $ p = [3, 4, 1, 2] $ 。要求如下: - $ s_1 = s $: $ [p_1, p_2, p_3, p_4] = [3, 4, 1, 2] $ 形成排列。 - $ s_2 = . $(点):无其它要求。 - $ s_3 = s $: $ [p_3, p_4] = [1, 2] $ 形成排列。 - $ s_4 = p $: $ [p_1, p_2, p_3, p_4] = [3, 4, 1, 2] $ 形成排列。 对于第二个测试用例,可以证明没有满足所有要求的排列。 对于第三个测试用例,满足要求的一个排列是 $ p = [1, 2, 3, 4, 5] $ 。