# 编辑城镇与模拟币2:题解 ## 算法与贡献 Codex(GPT-6)给出相邻平均势函数的最优性证明、按家庭批量计算的系数公式、实现与验证。[标准程序](std.cpp)使用逆序系数尾和;[前向批量平均](solution-alternative-forward.zh.md)及其[程序](alternative-forward.cpp)维护各目标成员的财富,以更高时间开销换取较少的预处理空间。 ## 个人财富与目标 记 $k=p_1$、$a=m_1/k$ .拆开初始家庭后,每人持有该家庭的人均财富;合并若干人再拆开,相当于将这些人的财富全部替换为均值。搬走一人不改变源家庭其他人的人均财富,因此任意编辑都可以在这个个人财富模型下分析。 最终将全部目标成员合为一家,总财富就是这 $k$ 个人财富之和。过程中可以使用任意多个临时家庭。 ## 任意编辑都不能超过的上界 这一段允许目标成员的当前财富不同,以便把同一结论用于任何中间状态。 将所有人按财富非降排序,目标标为 $T$ ,外部标为 $O$ .只要相邻标签为 $TO$ ,就将两人的财富平均,并交换他们在排序表中的位置。两人现在同样富,列表仍然有序。重复直到全部 $O$ 位于全部 $T$ 之前,将此时的目标财富总和记为 $\Phi$ . **操作顺序不影响结果。** 每步消除一个标签逆序。两个同时可操作的 $TO$ 不可能重叠,它们作用于不同坐标,可以交换执行顺序。对逆序数归纳,所有执行顺序得到同一个最终财富向量。 **每一步都不减少目标财富。** 被平均的目标成员不比外部成员富。因此 $\Phi$ 不小于当前目标财富总和,而且这个值可用有限步达到。 **任意两人平均都不增加 $\Phi$ .** 固定财富排序后,所有操作都是固定的相邻平均矩阵,$\Phi$ 是初始财富的线性函数。结束时目标总和对有序坐标的系数是 $$0,0,\ldots,0,1,1,\ldots,1.$$ 倒推操作时,每步同样把相邻两个系数平均,所以系数始终非降。也就是说,较富坐标的系数不小于较穷坐标。 让任意两人的财富 $x