CF2049B.pspspsps
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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
输入输出样例
输入#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] $ 。
输入解题思路,AI测评打分。不知道怎么写?