1 条题解
-
0
题解
思路
一次操作等价于不断选取当前区间内的一对位置 交换,随后只在 内继续选择。
做法
因此从左到右贪心:对当前左端 ,若剩余区间中存在比 小的字符,就选其中字符值最小且位置最靠右的一个与 交换,并把右端缩到该位置左侧;否则直接跳过 。最小字符保证当前位置最优,在字符相同时选择最右位置会给后续保留最大的可选区间,所以该贪心逐位得到全局字典序最小解。
为每种小写字母保存其所有出现位置。每个左端依次检查至多 种字符,并在位置表中二分找到不超过当前右端的最右位置;交换过的两个位置都会立刻离开后续区间,因此无需更新位置表。
复杂度
时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1586
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者