社区
C语言
帖子详情
C语言中医院的建立问题。在哪里建最合适。
ziqing_deshi
2009-10-14 09:42:26
在一个城市里,n个家庭散乱地分布在城市中。用x坐标表示东西向,用y坐标表示南北向。各家庭的位置可以由坐标(x,y)表示。其中任意2点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。大家希望在城市中选择建立医院的最佳位置,使n个家庭到医院的距离总和最小,输出最小的距离。
输入示例 输出示例
6 25
1 2
2 2
-1 3
-2 -2
0 3
5 -6
...全文
229
10
打赏
收藏
C语言中医院的建立问题。在哪里建最合适。
在一个城市里,n个家庭散乱地分布在城市中。用x坐标表示东西向,用y坐标表示南北向。各家庭的位置可以由坐标(x,y)表示。其中任意2点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。大家希望在城市中选择建立医院的最佳位置,使n个家庭到医院的距离总和最小,输出最小的距离。 输入示例输出示例 625 1 2 2 2 -1 3 -2 -2 0 3 5 -6
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zechaoxu
2009-11-04
打赏
举报
回复
学习学习
cphj
2009-10-14
打赏
举报
回复
应该就是求这n个点的重心
morilasi
2009-10-14
打赏
举报
回复
貌似算法导论 中位数 那一章有讲这个问题?
楼主可以翻一下
whg01
2009-10-14
打赏
举报
回复
先获取x,y的最大和最小值Xmin,Xmax, Ymin, Ymax。
然后让i从Xmin到Xmax变化,逐个计算相应的x方向的距离和。找到最小的。
然后再计算y方向。
这样就得到了坐标。
复杂度 O(n*max(|Xmin-Xmax|,|Ymin-Ymax|))
V68V6
2009-10-14
打赏
举报
回复
考虑DS中的多源点最短路径算法
zhkjoy
2009-10-14
打赏
举报
回复
先在距离最远的两个家庭中间线上试,找最小距离点,然后在这个点附近找
十八道胡同
2009-10-14
打赏
举报
回复
最简单的思路,通过试每个点得出答案,
不过应该有更好的办法
diablox0147
2009-10-14
打赏
举报
回复
如果实际生活中还应该考虑到交通和人口流量.....
cphj
2009-10-14
打赏
举报
回复
楼上用数学解释
如果用物理可以这样解释:
假设n个点都有同样的质量,再放入1个额外的点,那么最后这个点就会受到之前n个点的引力作用,于是它最终会运动到某个平衡点,这个点就是之前n个点的重心
如何证明,重心到其他各点的距离和最小:
在重心上,它将感受不到任何引力作用,因为它到n个点的距离是最小的,如果不是这样,那么它就还有势能,势能将迫使它继续移动
zdeepblue
2009-10-14
打赏
举报
回复
[Quote=引用 6 楼 cphj 的回复:]
应该就是求这n个点的重心
[/Quote]
正解
设D(i)是Hospital(hx,hy)到Home(xi,yi)的距离,即D(i) = |hx-xi| + |hy-yi|
Sum(D)=D(1)+D(2)+...+D(n),求min(Sum(D))时的Hospital
因为D永为正数,可以把问题看成D2(i)=(hx-xi)^2+(hy-yi)^2,求min(sum(D2))
Sum(D2) = D2(1)+...+D2(n)
=n*hx^2-2*hx*sum(xi)+sum(xi^2) +
n*hy^2-2*hy*sum(yi)+sum(yi^2)
所以当hx=sum(xi)/n, hy=sum(yi)/n时Sum(D2)最小,即Sum(D)最小。
所以Hospital是在所有点围成多边形的中心。
C语言
课程设计:医院管理系统
1、编写一个
C语言
程序,实现一个医院的诊疗管理系统,能够管理至少30位患者,每位患者至多30条诊疗记录。其中: 1)每条诊疗记录包括患者信息、医生信息、诊疗情况三部分。请自行组织相关信息的存储方式(冗余信息...
C语言
大作业 数据结构 医院候诊排队系统 代码【可运行代码+截图】
设计内容: 设计一个医院候诊排队系统。...(1)用队列模拟上述排队候诊的
问题
,
建
立
队列分别对应不同优先级别,按照从终端读入的输入数据的方式进行模拟管理。 输入1,表示有新的病人加入队列候诊,根据病情指定其优先
c语言
写层次分析法,基于
C语言
的层次分析法在医院工作质量评价中的设计与实现...
高宇翔 王磊 买力曼·巴哈尼 朱诗威 艾孜买提·艾则孜 吴淼摘要:目的:对新疆医院工作质量进行综合评价和分析,并提出合理的改进
建
议,结合新疆医院的工作质量,采用层次分析法提出医院工作质量评价模型,并用该...
用
C语言
写一个查单词的小demo
用
C语言
写一个查单词的小demo #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { // 用只读的方式打开我们的单词库 FILE *fp = fopen(...
C语言
实现排队叫号器
函数用于取号,根据客户类型将排队号插入到队列中,并将 VIP 客户从队列前端插入。(5)过号:当叫号后,无人上前办理...函数用于叫号,从队列中取出最前面的号码并展示在显示区。函数用于办理,展示正在办理业务的号码。
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章