1 条题解
-
0
- 1
信息
- ID
- 1650
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
在 Si=Ti 的位置,无论 Ui 取什么,对两个汉明距离的贡献都相同;为使字典序最小应直接取 0。
在 Si=Ti 的位置,若令 Ui=Si,两个距离之差贡献 −1,令 Ui=Ti 则贡献 +1。因此不同位置的数量必须为偶数,而且其中恰好一半位置选 Si、另一半选 Ti。
令这两种选择的剩余额度起初都为不同位置数的一半。从左到右处理不同位置:字符 0 对应的是选 Si 或选 Ti 中的一种;如果该种额度仍为正,就取 0,否则只能取 1 并消耗另一种额度。这个逐位选择总能保留恰好的剩余额度,并且每一位都选择当前可行的最小字符,所以得到全局字典序最小解。
时间复杂度为 O(N),空间复杂度为 O(N)。