问题 4603 --第K个优美的字符串

4603: 第K个优美的字符串★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 36  解决: 11
[提交][状态][命题人:]

题目描述

对于给出的整数n(n>2),我们按照字典序(字母顺序)写下所有长度为并且包含n-2个字符“a”2个字符“b”的字符串。

回想一下,对于长度都为n的字符串s和字符串t,如果存在i(1≤i≤n)使得si<ti,并且对于任意j(1≤j<i)都有sj=tj,那么我们说在字典序上字符串s<t。字符串的字典序比较是由现代编程语言中的运算符“<”实现的。

例如,如果n =5,则字符串列表如下(顺序很重要):

1、 aaabb

2、 aabab

3、 aabba

4、 abaab

5、 ababa

6、 abbaa

7、 baaab

8、 baaba

9、 babaa

10、bbaaa

显然这样一个字符串列表将会包含n*(n-1)/2个字符串。给出n(n>2)和k(1≤k<n*(n-1)/2),输出列表中的第k个字符串。

输入

包含一组或多组测试数据。

第一行为整数t(1≤t≤104),表示有t组测试数据。

接下来t行,每行包含两个空格隔开的整数n和k(3≤n≤1051≤k≤min(2*109, n*(n-1)/2)。

所有测试数据中n之和不超过105

输出

对于每组测试数据,输出上述所有长度为n的字符串的列表中的第k个字符串,列表中的字符串按照字典序(字母顺序)排序。

样例输入
Copy
2
5 3
5 7
样例输出
Copy
aabba
baaab

提示

来源

[提交][状态]