2 3 1 1 2 1 1 2 5 2 9 5 20 11 9 1 1 1 20
2 44
思路:这个题目是求一个点 到平面整点集的最短曼哈顿距离。等价于2次求一维 数轴上的y=|x-x0|+|x-x1|......|x-xn| 求最小的y的值。
分析:1.当数轴上只有2个点,那么到2个点最短距离是两个点所构成的线段长度, 此时x的取值范围[x0,x1](闭区间).
2.当数轴上只有3个点x0,x1,x2, 那么到3个点最短距离是除去中间那个点所构成的线段长度,此时x=x1。
#include
#include
#include
using namespace std;
#define LL long long
int main()
{
int x[21],y[21],n,i;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=0;i