邮局选址问题(包含费用),求解题思路。。

zlx1941 2010-11-25 04:21:09
在一个按照东西和南北方向划分成规整街区的城市里,n 个居民点散乱地分布在不同
的街区中。用x坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由其x坐标和
y坐标来表示。居民们希望在城市中选择一个恰当的位置(x,y)建立一个邮局。由于地理位置
不同,街区中不同居民点到邮局的费用也不相同。如果居民点(xi,yi)沿东西向和南北向前进
单位距离的费用分别是 ai 和 bi,1≤i≤n,则从居民点(xi,yi)到邮局(x,y)的费用是
ai|xi-x|+bi|yi-y|。

如何选择邮局的最佳位置才能使 n个居民点到邮局的总费用最小。
给定 n 个居民点的位置以及每个居民点沿东西向和南北向前进单位距离的费用,计算 n
个居民点到邮局的最小总费用。

★数据输入
输入数据的第 1 行是居民点数 n,1≤n≤100000。接下来的 n 行是居民点的位置坐标以
及每个居民点沿东西向和南北向前进单位距离的费用。每行有 4 个数。前 2 个是整数 x 和 y,
-100000≤x,y≤100000,表示居民点的位置坐标。后 2 个是实数 a 和b,0<a,b≤100,分别表
示居民点沿东西向和南北向前进单位距离的费用。

★数据输出
将计算出的 n 个居民点到邮局的最小总费用输出,计算结果保留 2 位小数。

输入示例:
5
1 2 1.0 2.0
2 8 1.0 2.0
5 3 1.5 2.0
4 -2 2.0 1.0
3 -3 1.0 2.5

输出示例:
38.00

请教一下解题思路,多谢。。

...全文
469 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
算法题目,最接近点对问题
分治法
diablox0147 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qq120848369 的回复:]
选址:( sum{x}/n , sum(y)/n )
费用:自己求.
[/Quote]

这样MS不行阿。。。 就算求出了所以点的中心但是不能保证就是最低费用阿。。。
因为每个人移动所需的费用不同

我觉得应该在这个的基础上移动选址点,向最贵的那位住户慢慢靠近,每次可以选择向x或者y方向移动,选择能把费用尽量介绍的方向。 每次移动后更新每个住户的所需费用,记录下最贵的住户,然后再次向最贵的用户移动,直到不管向X还是Y移动都只会增加最大费用为止
zlx1941 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 zlx1941 的回复:]
在一个按照东西和南北方向划分成规整街区的城市里,n 个居民点散乱地分布在不同
的街区中。用x坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由其x坐标和
y坐标来表示。居民们希望在城市中选择一个恰当的位置(x,y)建立一个邮局。由于地理位置
不同,街区中不同居民点到邮局的费用也不相同。如果居民点(xi,yi)沿东西向和南北向前进
单位距离的费用分别是 ai 和 bi,1≤i≤n,则从……
[/Quote]貌似不对吧。。
qq120848369 2010-11-25
  • 打赏
  • 举报
回复
选址:( sum{x}/n , sum(y)/n )
费用:自己求.
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧