25.6.17 闲话:拼数怎么做?

· · 题解

邻项交换

对于一个集合 S,定义二元关系 \prec 是它上的严格全序,当且仅当:

问题:

结论:找到 p 的排列 q' 使得 \forall i\in[1,n),q'_i\prec q'_{i+1}f(q') 即为答案。

证明:

因此邻项交换的证明需要注意:证明是严格全序,尤其是传递性与连接性;证明交换后不变劣。

拼数

定义一个二元关系 \precA\prec B 当且仅当以下两个条件满足一个:

对于字符串 A,设它的编号是 id_A,在 10 进制下的数是 a,则定义它的权值 f(A)=-\frac{a}{10^{\lvert A\rvert}-1}+\epsilon\times id_A(可以认为其中 \epsilon=10^{-100})。

此时,A\prec B 当且仅当 f(A)<f(B)

显然 <\mathbb R 上的严格全序,因此 \prec 是严格全序。

如果存在 a_i\succ a_{i+1},令 A=a_i,B=a_{i+1},那么:

因此证明完成:\prec 是严格全序;交换相邻的 a_i\succ a_{i+1} 不会使答案变劣。