街道最短路径

街区最短路径问题
时间限制:3000 ms | 内存限制:65535 KB
难度:4

描述
一个街区有很多住户,街区的街道只能为东西、南北两种方向。

住户只可以沿着街道行走。

各个街道之间的间隔相等。

用(x,y)来表示住户坐在的街区。

例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。

现在要建一个邮局,使得各个住户到邮局的距离之和最少。

求现在这个邮局应该建在那个地方使得所有住户距离之和最小;

输入
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0<x,y<100,表示某个用户所在街区的坐标。
m行后是新一组的数据;
输出
每组数据输出到邮局最小的距离和,回车结束;
样例输入

2
3
1 1
2 1
1 2
5
2 9
5 20
11 9
1 1
1 20

样例输出

2
44

解题的关键就在于排序求出中间的经x和y。

然后累加求和就行!

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int main()
{
int n;
int x[20], y[20];

cin >> n;
for (int test = 1; test <= n; test++)
{
int m;
cin >> m;
for (int i = 0; i < m; i++)
cin >> x[i] >> y[i];

//从小到大排序
sort(x, x+m);
sort(y, y+m);

int minSum = 0;

for (int i = 0; i < m; i++)
{
minSum += abs(x[i] - x[m/2]);
minSum += abs(y[i] - y[m/2]);
}
cout << minSum << endl;
}
return 0;
}

时间: 2024-10-31 07:54:16

街道最短路径的相关文章

NYOJ 7(街区最短路径问题)

街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB 难度:4描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. 用(x,y)来表示住户坐在的街区. 例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道. 现在要建一个邮局,使得各个住户到邮局的距离之和最少. 求现在这个邮局应该建在那个地方使得所有住户距离之和最小: 输入 第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组第一行一个整

基于pgrouting的任意两点间的最短路径查询函数二

    在前面的博文中写过一篇查询任意两点间最短路径的函数,当时对pgrouting不熟悉,功能很low.现在对该函数进行扩展,支持用户自己输入查询的数据库表,这一点看似简单,其实意义很大,在做室内导航的时候当用户所在的楼层变化的时候最短路径函数查询的数据表名称也会发生变化,不可能一栋大楼里的道路都是一样的吧,另外进行跨楼层的最短路径规划时,需要查询从A到楼梯口的最短路径和楼梯口到B的最短路径,这些都需要进行最短路径规划的时候能够自己选择数据表.     先解释一下最短路径规划的处理步骤,首先要

[算法系列之二十九]Bellman-Ford最短路径算法

单源最短路径 给定一个图,和一个源顶点src,找到从src到其它所有所有顶点的最短路径,图中可能含有负权值的边. Dijksra的算法是一个贪婪算法,时间复杂度是O(VLogV)(使用最小堆).但是迪杰斯特拉算法在有负权值边的图中不适用,Bellman-Ford适合这样的图.在网络路由中,该算法会被用作距离向量路由算法. Bellman-Ford也比迪杰斯特拉算法更简单和同时也适用于分布式系统.但Bellman-Ford的时间复杂度是O(VE),这要比迪杰斯特拉算法慢.(V为顶点的个数,E为边的

单源最短路径算法--Dijkstra算法和Bellman-Ford算法

Dijkstra算法 算法流程: (a) 初始化:用起点v到该顶点w的直接边(弧)初始化最短路径,否则设为∞: (b) 从未求得最短路径的终点中选择路径长度最小的终点u:即求得v到u的最短路径: (c) 修改最短路径:计算u的邻接点的最短路径,若(v,-,u)+(u,w)<(v,-,w),则以(v,-,u,w)代替. (d) 重复(b)-(c),直到求得v到其余所有顶点的最短路径. 特点:总是按照从小到大的顺序求得最短路径. 假设一共有N个节点,出发结点为s,需要一个一维数组prev[N]来记录

九度题目1008:最短路径问题

题目1008:最短路径问题 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5129解决:1634 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花 费,如果最短距离有多条路线,则输出花费最少的. 输入: 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p. 最后一行是两个数 s,t;起点s,终点t.n和m为0时输入结束. (1n=1000, 0m100000,

迷宫路径输出问题-关于迷宫深度最短路径的问题

问题描述 关于迷宫深度最短路径的问题 #include #include #include #include #include #define N 100 using namespace std; struct node { double hgf; int xy; bool operator<(node other)const { return f } }; int map[N][N];//迷宫,1表示可以走,0表示不可以走 int rowcol;//矩阵的行和列 multiset open;/

最短路径规划中创建基于geoserver的wms服务

上篇文章写了求任意两点间最短路径的sql函数,这篇文章讲一下如何把上面介绍的子功能整合到系统中去. 1.geoserver登录 首先单击geoserver安装路径下的start Geoserver 待geoserver启动后,在浏览器中输入,http://localhost:8080/geoserver/web/ 输入用户名密码登录geoserver 2.创建工作区 单击左侧工作区,如下图所示: 会进入新建工作区页面,单击"添加新的工作区",如下图所示 在弹出的工作区设置中输入新工作区

Twitter:互联网的最短路径

TWITTER最近炒得挺火,国外的twitter拿到了可观的风投,国内的仿twitter也拿到了数量不等的天使投资:大度咨询和techweb上周还特意请来CSDN的总经理韩磊先生以及国内几个仿twitter(微博客)的网站创始人,共同讨论了twitter的前景. 不看好twitter的理由 很多人对twitter都不太看好,其中一个理由是中美文化的不同,美国人乐于把自己的私事告诉别人,中国人对此却没有太多的兴趣,美国人开放的性格与中国人还是有一段差距,myspace至今没在国内火起来,也有类似的

灵动嘻哈势力街道部分制作教程

教程 灵动嘻哈势力(MAGIC HIP-HOP FORCE)网站 街道部分制作教程 (图1) 街道部分整体图 街道部分制作教程(MHHF.FLA)源文件下载 首先介绍一下网站各部分 1. 背景音乐播放器 2 . 快捷导航拦 3 内容显示拦 留言本 4. 更新日记 MP3下载区 我的音乐间 JE的屋子 EMAIL 友情链接 5. 主角以及一些零散的小栏目 以上是网站街道的基本组成部分,反正挺乱的,浏览网站不细心的话,就找不到好东东了呵 了解之后开始介绍制作流程拉!,以下代码都是一些老的写法了,显的