题解

cookiebus 2023-10-05 5:00:47 13 返回题目

1.1

直接输出 S。 期望得分:5.

1.2

注意到将 S 通过操作变为另一个串最多只需要 次操作,因此直接将 S 中的字符排序后输出即可。 期望得分:5.

1.3 S 中仅包含 a, b 两种字符

既然是要字典序最小,容易想到从前往后按位贪心。设前 位的字符都已经确定,现在要确定第 i 位的字符。令 ,找到 中的第一个 a,设为 ,容易证明把 通过 次交换移到 是最优的。 因此每次暴力找到 ,将其移动到第 个位置,然后将 减去 ,直到所有位置都被确定为止。 时间复杂度 。期望得分:15.

1.4

同样考虑从前往后贪心。设前 位的字符都已经确定,令 ,找到 中的最小且尽量靠前的字符 ,将其移动到第 个位置,然后将 减去 ,直到所有位置都被确定为止。 时间复杂度 。期望得分:95.

1.5 正解

考虑如何优化上述贪心过程。注意到我们每次只需要找到区间的最小值,或是删掉某一个位置的字符。可以使用线段树或平衡树来实现。 时间复杂度 。期望得分:100

{{ vote && vote.total.up }}