25.6.17 闲话:拼数怎么做?

· · 题解

邻项交换

问题:

结论:排序 p 使得 p_i\prec p_{i+1},此时 f(p) 最小。

证明:如果没有完成排序,一定存在 p_i\succ p_{i+1}。一直交换这样的对,可以得到排序后的 pf(p) 不大于当前的 f(p)

如果是偏序,这个结论就不一定正确了。

拼数

考虑最小化,最大化是一样的。

考虑构造这么一个全序 \prec

可以证明这是一个全序:

而交换相邻的 a_i\succ a_{i+1} 不会是答案变劣,根据前面的结论,这是对的。

不能比出大小的串按编号定义顺序,这样就是全序了。