解题思路:因题目的距离公式为:[x1-x2]+[y1-y2]。可以知道,我们可以将居民点的横纵坐标分别分成
排序好的两个数组。拿x的数组来说,求出x1~xn中的一点,这个点满足各点到这点的距离之和最小
不难发现这个点就是Xn/2。这点也就是邮局选址的横坐标。
此题借鉴:https://blog.csdn.net/qq_36793206/article/details/79949714
他是c++写的
注意事项:
参考代码:#include<stdio.h>
#include<math.h>
int main()
{
int n,a,b,i,j,k=0,sum=0,x[10000],y[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&x[i],&y[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(x[i]>x[j])
{
k=x[i];
x[i]=x[j];
x[j]=k;
}
if(y[i]>y[j])
{
k=y[i];
y[i]=y[j];
y[j]=k;
}
}
}
a=x[n/2];
b=y[n/2];
for(i=0;i<n;i++)
{
sum+=fabs(a-x[i]);
sum+=fabs(b-y[i]);
}
printf("%d\n",sum);
return 0;
}
0.0分
1 人评分
【计算两点间的距离】 (C语言代码)浏览:927 |
母牛的故事 (C语言代码)浏览:478 |
多输入输出练习1 (C语言代码)浏览:1219 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:287 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:584 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1314 |
WU-蓝桥杯算法提高VIP-Quadratic Equation (C++代码)浏览:1808 |
剪刀石头布 (C++代码)浏览:1811 |
输入输出格式练习 (C语言代码)浏览:773 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:536 |