士兵站队(pku1723)

来源:互联网 发布:金蝶软件电话 编辑:程序博客网 时间:2024/05/17 01:02

http://acm.pku.edu.cn/JudgeOnline/problem?id=1723

一个定理:S=|x1-k|+|x2-k|+...+|xn-k|,当k为序列x的中位数时,S取最小值。

y方向很简单。不同的y合成到一点。排序之后按上面做,(yn-y1)+(yn-1-y2)...

x方向要排成x,x+1,x+2....x+n-1

只要找到一个确定的点就可以确定新的x序列了。假如排好后最左边的坐标为k,则移动的步数就是|x0-k|+|x1-(k+1)|+|x2-(k+2)|+...+|xn-(k+n)|,就是|x0-k|+|x1-1-k|+|x2-2-k|+..+|xn-(n-1)-k|,所以k为新的x序列的中位数。对x[i]排序,求出x[i]-i,再排序,求出S。

 

 

原创粉丝点击