[???] 带权中位数

好像是某道CF问题的变形, 记一下.

题目描述

有若干的排列在一条直线上的点\(p_i\), 每个点上有\(a_i\)个人, 找出一个点, 使得所有人移动带这个人的位置上的总距离最小.

结论. 从左到右累加人数, 寻找刚刚过半的人数.
证明. (扰动法) 若\(\sum_{i=1}^{x-1}<\sum a_i /2\), \(\sum_{i=1}^{x}\geq\sum a_i /2\), 这个\(x\)就是要求的. 假设所有人集合到\(p_x\)走的总距离是\(A\), 记作\(D(x)\).

考虑$$D(x-1)=\sum_{i=1}^{x-1}a_i\times|p_x-p_{x-1}| + \sum_{i=x}^{n}a_i\times|p_x-p_{x-1}|.$$

由于左边的人数小于一半, 这样调整之后的人数只会增加. 所以会更劣.

同理可证右半边.

拓展1.

如果每个人还有一个等待时间.
结论. 把每个人拆成两个, 一个左边, 一个右边, 转化为原来的情况.

拓展2.

要求移动距离的平方和最小.

不妨设所有的点到\(x\)的平方和是\(D(x)\). 那么$$D(x)=\sum_{i=1}^n a_i \times(p_i-p_x)^2.$$ 我们考察\(D(x)\)\(D(x+1)\)之间的差值, 来判别两者之间的差距.

同理$$D(x+1)=\sum_{i=1}^n a_i (p_i-p_{i+1})^2. $$

因此差值就是

\[\begin{align*} D(x+1)-D(x)&=\sum_{i=1}^n a_i \times(p_i-p_x)^2 - \sum_{i=1}^n a_i (p_i-p_{i+1})^2\\ &=\sum_{i=1}^n a_i ({p_i^2}+p_{x+1}^2-2p_ip_{x+1}{-p_i^2}+p_{x}^2-2p_ip_x)\\ &=(p_{x+1}^2-p_x^2)\sum_{i=1}^n a_i + (p_x-p_{x+1})\sum_{i=1}^n 2p_ia_i \end{align*} \]

posted @ 2022-11-07 21:34  Micoael_Primo  阅读(51)  评论(0)    收藏  举报