/ TYWZ / 题库 /

Similar String

Similar String

题目描述

对于字符集\(S\)上的两个长度均为\(n\)的字符串\(A[0 \cdots n-1]\)和\(B[0 \cdots n-1]\),定义它们两个“相似”的条件为:存在一个\(S \rightarrow S\)的 一一对应 的映射\(f\),对于所有的\(i=0, 1 \cdots n-1\)均满足\(f(A[i])=B[i]\)且\(f^{-1}(B[i])=A[i]\)。
“一一对应”指的是:\(f(a)\)的值是唯一确定的,且对于任意两个元素\(a,b\),若\(a \ne b\)则必然有\(f(a) \ne f(b)\)。\(f^{-1}\)表示\(f\)的逆映射,若\(f(a)=b\),则\(f^{-1}(b)=a\)。
例如字符串\(A=\)ABCBDA和\(B=\)CBDBAC满足上述的相似条件,其中映射\(f\)为A->C, B->B, C->D, D->A。而字符串ABACDCACAE就不相似。
取字符集\(S\)为26个大写英文字母,现有\(Q\)次询问,每次询问给定两个参数\(N, K\),试构造一个字符串集合\(T\),使之满足如下条件:
1. 满足集合的互异性;
2. \(\lvert T \rvert = K\),即该集合中共有\(K\)个字符串;
3. \(\forall A \in T, \lvert A \rvert = N\),即该集合中每个字符串的长度均为\(N\);
4. 集合中的字符串两两 不相似
5. 在满足上述限制的前提下,要求\(T\)中最大的字符串尽可能小,这里的“大”和“小”均指字典序。
对于每次询问,你只需要输出\(T\)中最大的那个字符串。

输入格式

第一行是一个正整数\(Q\),表示询问次数;
之后\(Q\)行,每行两个正整数\(N, K\),含义见上。数据保证解存在。

输出格式

每个询问输出一行,表示构造的集合\(T\)中最大的那个字符串。

样例

输入

2
3 2
3 5

输出

AAB
ABC

样例说明

对于第一次询问,\(T\)中字符串从小到大为:AAAAAB
对于第二次询问,\(T\)中字符串从小到大为:AAAAABABAABBABC。此外可以验证,当\(N = 3, K \ge 6\)时答案不存在。

数据规模及约定

对于20%的数据:\(Q \le 10, \quad N \le 5, \quad K \le 50\)
对于40%的数据:\(Q \le 10, \quad N \le 8, \quad K \le 4 \times 10^3\)
对于60%的数据:\(Q \le 10, \quad N \le 11, \quad K \le 6.5 \times 10^5\)
对于100%的数据:\(Q \le 10^4, \quad N \le 24, \quad K \le 4.5 \times 10^{17}\)
以上各个大类中,各自有50%数据满足:整个测试文件中\(N\)的取值只有一个。
时间限制1s,空间限制64MB。

信息

ID
1057
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者