题解:AT_arc183_a [ARC183A] Median of Good Sequences
题解:AT_arc183_a [ARC183A] Median of Good Sequences
hymcr05题意
给出正整数 和 ,定义一个长度为 ,由 组成的字符串,当 中每个数出现的次数为 ,那么这个字符串就为“好串”,令 为好串的个数,问按字典序升序排列后第 个“好串” 是什么?
解题思路
首先我们可以想到:
先打一个全排列枚举每一个“好串”,然后输出即可。但是我们发现,我们的全排列时间复杂度为 ,肯定过不了,于是我们用它打表找规律。
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
/ | / | |||||
/ | / | / | ||||
/ | / | / | / | |||
/ | / | / | / |
(斜杠:递归次数过多,打不出来)。
我们可以发现 的奇偶性会导致答案发生变化,所以我们分开讨论。
对于 的情况,直接特判。
当 为奇数且 时,当 时,我们发现答案的前两个数分别为 和 , 而剩下的数就是 中除了这两个数以外降序的结果。对于 的情况,可以发现除了第二个数之外的其它数都重复了 次,并且第二个数会在 的答案序列中下标为 和 中间的位置重复 次。
当 为偶数时,若 ,此时答案的第一个数就为 , 剩下的数就是 中除了这个数以外降序的结果。再看对于 的情况,除了第一个数之外的其它数都重复了 次,而第一个数会在原来 的答案序列中下表为 和 中间的位置同样重复 次。
参考代码
1 |
|
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果