NYoj-街区最短路径问题
街区最短路径问题
- 描写叙述
- 一个街区有非常多住户,街区的街道仅仅能为东西、南北两种方向。
住户仅仅能够沿着街道行走。
各个街道之间的间隔相等。
用(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 -
分析:因为仅仅能上下左右通路,所以先把横竖坐标分开,分别求他们的最值;
1、从平面一维分析,如果坐标轴上有1、2、3……n个点,目标点在x。 2、先求点1和n到x的距离之和。非常明显,x必须在1和n之间。 3、再求点2和n-1到x的距离之和。非常明显,x必须在2和n-1之间…… 4、如此下去,终于x的范围不断缩小,最后的位置,就是中位数的位置了。 -
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int T,i,j,n,sum;
int a[110]={0};
int b[110]={0};
scanf("%d",&T);
while(T--)
{
sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d",&a[i],&b[i]);
}
sort(a,a+n);
sort(b,b+n);
for(j=0;j<n/2;j++)
{
sum+=(a[n-j-1]-a[j]+b[n-j-1]-b[j]);
}
printf("%d\n",sum);
}
} -
NYoj-街区最短路径问题的更多相关文章
- NYOJ街区最短路径问题
描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. 用(x,y)来表示住户坐在的街区. 例如(4,20),表示用户在东西方向第4个街道, ...
- nyoj 7 街区最短路径问题 【数学】
找出横纵坐标的中位数,怎么找:先对x排序找x的中位数x0,再对y排序找y的中位数y0:最后统计各点到中位数点(x0, y0)的总距离: 街区最短路径问题 时间限制:3000 ms | 内存限制:6 ...
- nyoj 题目7 街区最短路径问题
街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...
- NYOJ 7 街区最短路径问题
街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...
- nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)
街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...
- NYOJ7——街区最短路径问题
街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述:一个街区有很多住户,街区的街道只能为东西.南北两种方向.住户只可以沿着街道行走.各个街道之间的间隔相等 ...
- 【ACM】nyoj_7_街区最短路径问题_201308051737
街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB 难度:4描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. ...
- nyoj_7:街区最短路径问题
做这题时,先假设目标点在某个位置,然后对其稍微移动dx,dy,分析对ans的影响.最终得,选点时,使一半的横坐标比目标点横坐标小,一半的纵坐标比目标点小,这样得到的ans最小. 题目链接: http: ...
- NYOJ 7-街区最短路径问题(曼哈顿距离)
街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...
随机推荐
- 【转】CxImage图像库的使用
CxImage下载地址:http://www.codeproject.com/KB/graphics/cximage/cximage600_full.zip 作者:Davide Pizzolato C ...
- Problem B The Blocks Problem(vector的使用)
题目链接:Problem B 题意:有n块木块,编号为0~n-1,要求模拟以下4种操作(下面的a和b都是木块编号) 1. move a onto b: 把a和b上方的木块全部归位,然后把a摞在b上面. ...
- js限制图片的大小
<form id="financialForm" action="<%=basePath%>riskcontrol/website/review_bor ...
- 什么是core dump?(转)
什么是Core Dump? 今天调试一个程序, 用到了core dump, 于是写出来, 记于此.什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开 发和使用Uni ...
- 用JS画斐波那契螺旋线(黄金螺旋线)
偶然看到斐波那契螺旋线(黄金螺旋线)的定义及画图方法,试着用JS画了一下,很漂亮,很好玩 具体定义及画法大家查一下就有了,很简单. 以下是代码: <!DOCTYPE html> <h ...
- 禁用Java DNS缓存-Disable DNS caching
Once an application has performed network access (i.e. urlconnection, parsing of xml document with e ...
- HDU 1348 Wall
题解:计算凸包周长 #include <iostream> #include <cmath> #include <algorithm> const int size ...
- HDU 2962 Trucking
题目大意:给定无向图,每一条路上都有限重,求能到达目的地的最大限重,同时算出其最短路. 题解:由于有限重,所以二分检索,将二分的值代入最短路中,不断保存和更新即可. #include <cstd ...
- 算法导论 6.5.9 堆实现K路归并问题
问题: 设计一个时间复杂度为O(NlogK)的算法,它能够将K个有序链表合并为一个有序链表,这里的N为所有输入链表包含的总的元素个数 分析: 该问题为经典的利用堆完成K路归并的问题: 当K个序列满足一 ...
- [置顶] Android资源文件分析
1)修改开机默认壁纸 Android开机默认资源文件为:frameworks/base/core/res/res/values/config.xml 我们找到wallpaper行: <strin ...