CF1844D Row Major
题目描述
一个 $r \times c$ 的字符网格 $A$ 的行优先序(row-major order)是通过将所有行依次拼接得到的字符串,即 $A_{11}A_{12} \dots A_{1c}A_{21}A_{22} \dots A_{2c} \dots A_{r1}A_{r2} \dots A_{rc}$。
如果字符网格 $A$ 存在两个相邻的格子(即共享一条边的格子)内的字符相同,则称该网格是“坏的”(bad)。
给定一个正整数 $n$。请考虑所有仅由小写拉丁字母组成、长度为 $n$ 的字符串 $s$,使得 $s$ 不是任何坏网格的行优先序。请在所有满足条件的长度为 $n$ 的字符串中,找出一种不同字符数最少的方案,并输出任意一种。
可以证明,在本题的约束下,至少存在一种满足条件的字符串。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试数据组数。
接下来每组测试数据包含一行,一个整数 $n$($1 \le n \le 10^6$)。
保证所有测试数据中 $n$ 的总和不超过 $10^6$。
输出格式
对于每组测试数据,输出一个长度为 $n$ 的字符串,使其在所有满足条件的字符串中,不同字符数最少。
如果有多种方案,输出任意一种即可。
说明/提示
在第一个测试点中,$s$ 作为网格行优先序的方式有 $3$ 种,且它们都不是坏网格:
tththathatat 可以证明,最少需要 $3$ 个不同的字符。
在第二个测试点中,$s$ 作为网格行优先序的方式有 $2$ 种,且它们都不是坏网格:
iiss 可以证明,最少需要 $2$ 个不同的字符。
在第三个测试点中,只有 $1$ 种方式,且不是坏网格。
在第四个测试点中,$s$ 作为网格行优先序的方式有 $4$ 种,且它们都不是坏网格:
ttotomtomatoomaatomtoato 可以证明,最少需要 $4$ 个不同的字符。注意,例如字符串 "orange" 不符合要求,因为它有 $6 > 4$ 个不同字符;字符串 "banana" 也不符合要求,因为它是如下坏网格的行优先序:
banana
由 ChatGPT 4.1 翻译