刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
简答题
4.# 街道的中心
## 题目描述
城市商业街主干道是一条笔直的道路,商业街里有 n*n* 家店铺,现给定 n*n* 个店铺的位置,请在这条道路上找到一个中心点,使得所有店铺到这个中心点的距离之和最小,并输出这个最小值。
## 输入格式
第一行:单个正整数 n*n*。
第二行:n*n* 个整数表示一个店铺的位置。
## 输出格式
单个整数:表示商铺到中心点距离之和的最小值。
## 输入样例
4
-2 0 2 0
## 输出样例
4
## 说明提示
数据范围:
· −5000≤xi≤5000−5000≤*xi*≤5000
· 对于 30%30% 的数据,1≤n≤201≤*n*≤20
· 对于 60%60% 的数据,1≤n≤20001≤*n*≤2000
· 对于 100%100% 的数据,1≤n≤1000001≤*n*≤100000
样例解释:
最优中心设置在坐标 00 处,总距离为:
∣−2−0∣+∣0−0∣+∣2−0∣+∣0−0∣=2+0+2+0=4∣−2−0∣+∣0−0∣+∣2−0∣+∣0−0∣=2+0+2+0=4。
## 限制
时间限制:1000ms
内存限制:512MiB
## 题目描述
城市商业街主干道是一条笔直的道路,商业街里有 n*n* 家店铺,现给定 n*n* 个店铺的位置,请在这条道路上找到一个中心点,使得所有店铺到这个中心点的距离之和最小,并输出这个最小值。
## 输入格式
第一行:单个正整数 n*n*。
第二行:n*n* 个整数表示一个店铺的位置。
## 输出格式
单个整数:表示商铺到中心点距离之和的最小值。
## 输入样例
4
-2 0 2 0
## 输出样例
4
## 说明提示
数据范围:
· −5000≤xi≤5000−5000≤*xi*≤5000
· 对于 30%30% 的数据,1≤n≤201≤*n*≤20
· 对于 60%60% 的数据,1≤n≤20001≤*n*≤2000
· 对于 100%100% 的数据,1≤n≤1000001≤*n*≤100000
样例解释:
最优中心设置在坐标 00 处,总距离为:
∣−2−0∣+∣0−0∣+∣2−0∣+∣0−0∣=2+0+2+0=4∣−2−0∣+∣0−0∣+∣2−0∣+∣0−0∣=2+0+2+0=4。
## 限制
时间限制:1000ms
内存限制:512MiB
使用微信搜索喵呜刷题,轻松应对考试!
答案:
解析:
这道题目要求找到一个中心点,使得所有店铺到这个中心点的距离之和最小。质心算法是一种常用的解决此类问题的方法。具体实现如下:
- 首先读取输入数据,得到商业街的店铺数量 n 和每个店铺的位置坐标。
- 计算所有店铺横纵坐标之和,得到商业街的中心点坐标。具体地,假设所有店铺的横坐标之和为 sum_x,纵坐标之和为 sum_y,则中心点的坐标为 (sum_x / n, sum_y / n)。
- 计算每个店铺到中心点的距离,并求和,得到最小距离之和。距离的计算可以使用欧氏距离公式,即 dist = sqrt((x2-x1)^2 + (y2-y1)^2),其中 (x1, y1) 为店铺坐标,(x2, y2) 为中心点坐标。将所有店铺到中心点的距离相加,即可得到最小距离之和。
- 输出最小距离之和。
注意事项:
- 数据范围较大,需要使用高效的数据结构和算法来优化程序性能。
- 注意处理坐标的整数和小数的精度问题,避免计算错误。
创作类型:
原创
本文链接:4.# 街道的中心## 题目描述城市商业街主干道是一条笔直的道路,商业街里有 n*n* 家店铺,现给
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



