#P17094. 合成大 hdu
合成大 hdu
1006. 合成大 hdu
题目描述
河灵是 hdu 的狂热粉丝。在他眼中,一切的一切都是 hdu 的模样。有一天晚上,河灵在草稿纸上涂鸦时发现,他居然可以在一个字符串中窥见 hdu 的影子!对于一个字符串 S,河灵可以一下子就数出字符串 S 的不同子序列 hdu 的个数。简单的数数已经不能满足河灵了。河灵有一个正整数 n (1 ≤ n ≤ 109),河灵很想知道拥有不同子序列 hdu 个数恰好为 n 的字符串 S 是什么样的。
,,
请你帮帮河灵,你需要构造一个仅包含 h d u 三种字符的字符串 S,使得字符串 S 的不同子序列 hdu 的个数恰好等于 n。但是河灵的草稿纸大小有限,所以你构造的字符串长度不能超过 3001。可以证明,对于所有满足 1 ≤ n ≤ 109 的正整数 n,至少存在一种满足要求的构造方案。
† 子序列:如果 S ′ 可以通过 S 删除若干个(可能是零个或全部)元素,且不改变剩余元素的相对顺序得到,则称 S ′ 是 S 的子序列。† 不同的子序列:两个子序列 S1, S2 不同,当且仅当原序列中至少存
在一个位置在一个子序列中出现,在另一个子序列中被删除。
输入格式
每个测试点中包含多组测试数据。输入的第一行包含一个正整数 T (
1 ≤ T ≤ 103 ),表示数据组数。对于每组测试数据:一行一个正整数 n (1 ≤ n ≤ 109 ),表示构造的字符串 S 需要包含的不同子序列 hdu 的个数。
输出格式
对于每组测试数据:输出一行一个字符串 S (1 ≤ ∣S∣ ≤ 3001),表示你构造的字符串。你需要保证字符串 S 仅包含 h, d, u 三种字符。若存在多种满足条件的字符串 S,输出任意一种即可。
样例输入
3
1
3
27
样例输出
hdu
hdhdu
hhhddduuu
来源:官方题面 PDF(2026"钉耙编程"暑期联赛 第2场)