专栏文章
25.6.17 闲话:拼数怎么做?
P1012题解参与者 22已保存评论 22
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 22 条
- 当前快照
- 1 份
- 快照标识符
- @mip2pyz3
- 此快照首次捕获于
- 2025/12/03 05:11 3 个月前
- 此快照最后确认于
- 2025/12/03 05:11 3 个月前
邻项交换
问题:
- 有一全序集 上的全序 ,给定 中元素组成的序列 。
- 定义了序列的价值 ,若 是 交换了一对 的 之后的排列,有 。
- 如何排列 以最小化 ?
结论:排序 使得 ,此时 最小。
证明:如果没有完成排序,一定存在 。一直交换这样的对,可以得到排序后的 的 不大于当前的 。
如果是偏序,这个结论就不一定正确了。
拼数
考虑最小化,最大化是一样的。
考虑构造这么一个全序 :
- 定义 当且仅当 ,此处 为字符串拼接。
可以证明这是一个全序:
- 定义 分别为 在 进制下的数。
- 。
- 因此 。
而交换相邻的 不会是答案变劣,根据前面的结论,这是对的。
不能比出大小的串按编号定义顺序,这样就是全序了。
相关推荐
评论
共 22 条评论,欢迎与作者交流。
正在加载评论...