编程题
### 问题描述 小蓝需要使用小写英文字母构造出一个长度为 $n$ 的字符串 $s$ 满足以下条件: - 字符串中有恰好有 $k$ 个不同的回文子串。 回文字符串是一个向后读和向前读一样的字符串,比如 $lannal$ 是回文,而 $lanqiao$ 不是回文。 不同的回文子串含义是即使相同的子串在字符串中出现多次,也只被计算一次, 例如字符串 $abcccb$ 中一共有 $6$ 个不同的回文子串,$a$,$b$,$c$,$cc$,$ccc$,$bcccb$。 请帮助小蓝构造出符合条件的字典序最小的字符串, 如果不存在则输出 $-1$。 ### 输入格式 每个测试包含多个测试用例,第一行包含测试用例的数量 $n$ 。下面是测试用例的描述。 每个测试用例包含两个整数 $n$ 和 $k$,分别表示字符串的长度和不同回文子串的个数。 保证所有测试用例中 $n$ 的和不超过 $2 \times 10^5$。 ### 输出格式 对于每个测试用例,输出一行,如果存在满足条件的字符串 $s$ 则输出字典序最小的字符串,否则输出 $-1$。 ### 样例输入 3 2 2 10 2 2 3 ### 样例输出 aa -1 -1 ### 评测数据规模 对于所有评测数据,$1 \leq t \leq 10^3,1 \leq n, k \leq 2 \times 10^{5}$。
查看答案
赣ICP备20007335号-2