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 翻译