[SHOI2013] 阶乘字符串
题目背景
shoi2013d1t2
(本题卡常数注意)
题目描述
给定一个由前 $n$ 个小写字母组成的串 $S$。串 $S$ 是阶乘字符串当且仅当前 $n$ 个小写字母的全排列(共 $n!$ 种)都作为的子序列(可以不连续)出现。
由这个定义出发,可以得到一个简单的枚举法去验证,但是它实在太慢了。所以现在请你设计一个算法,在 $1$ 秒内判断出给定的串是否是阶乘字符串。
输入输出格式
输入格式
输入第 $1$ 行一个整数 $T$,表示这个文件中会有 $T$ 组数据。
接下来分 $T$ 个块,每块 $2$ 行:
- 第 $1$ 行一个正整数 $n$,表示 $S$ 由前 $n$ 个小写字母组成。
- 第 $2$ 行一个字符串 $s$。
输出格式
对于每组数据,分别输出一行。每行是 `YES` 或者 `NO`,表示该数据对应的串 $S$ 是否是阶乘字符串。
输入输出样例
输入样例 #1
2
2
bbaa
2
aba
输出样例 #1
NO
YES
说明
第一组数据中,`ab` 这个串没有作为子序列出现。
![](https://cdn.luogu.com.cn/upload/image_hosting/9zs871wl.png)