找出横纵坐标的中位数,怎么找:先对x排序找x的中位数x0,再对y排序找y的中位数y0;最后统计各点到中位数点(x0, y0)的总距离;

街区最短路径问题

时间限制: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
#include<stdio.h>
#include<algorithm>
using std::sort;
typedef struct{
int x, y;
}str;
int cmpx( str a, str b )
{
if( a.x<b.x ) return true;
return false;
}
int cmpy( str a, str b )
{
if( a.y<b.y ) return true;
return false;
}
int main()
{
int n, t, j, i, q, p, sum, y, x;
str s[25];
scanf("%d", &t );
while( t -- )
{
scanf( "%d", &n );
for( i = 0; i < n; i ++ )
scanf( "%d%d", &s[i].x, &s[i].y );
sum = 0;
sort( s, s+n, cmpx);
x = s[n/2].x;
sort( s, s+n, cmpy );
y = s[n/2].y;
for( i = 0; i < n; i ++ )
{
p = s[i].x-x;
q = s[i].y-y;
if( p < 0 ) p = -p;
if( q < 0 ) q = -q;
sum = sum +p+q;
}
printf( "%d\n", sum );
}
}

nyoj 7 街区最短路径问题 【数学】的更多相关文章

  1. NYOJ 7 街区最短路径问题

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  2. nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  3. nyoj 题目7 街区最短路径问题

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  4. NYOJ 7-街区最短路径问题(曼哈顿距离)

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  5. NYOJ7——街区最短路径问题

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4  描述:一个街区有很多住户,街区的街道只能为东西.南北两种方向.住户只可以沿着街道行走.各个街道之间的间隔相等 ...

  6. 【ACM】nyoj_7_街区最短路径问题_201308051737

    街区最短路径问题时间限制:3000 ms  |  内存限制:65535 KB 难度:4描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. ...

  7. NYOJ街区最短路径问题

    描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. 用(x,y)来表示住户坐在的街区. 例如(4,20),表示用户在东西方向第4个街道, ...

  8. NYOJ 330 一个简单的数学

    一个简单的数学题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 zyc近期迷上了数学,一天,dj想出了一道数学题来难住他.算出1/n,但zyc一时答不上来希望大家能 ...

  9. nyoj_7:街区最短路径问题

    做这题时,先假设目标点在某个位置,然后对其稍微移动dx,dy,分析对ans的影响.最终得,选点时,使一半的横坐标比目标点横坐标小,一半的纵坐标比目标点小,这样得到的ans最小. 题目链接: http: ...

随机推荐

  1. Android设备管理器漏洞2--禁止用户取消激活设备管理器

    2013年6月,俄罗斯安全厂商卡巴斯基发现了史上最强手机木马-Obad.A.该木马利用了一个未知的Android设备管理器漏洞(ANDROID-9067882),已激活设备管理器权限的手机木马利用该漏 ...

  2. 《windows核心编程系列》十八谈谈windows钩子

    windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功 ...

  3. poj3414(bfs)

    题目链接:http://poj.org/problem?id=3414 题意:给你两个容器 A  B 问是否能够经过有限的步骤倒水,得到容量为 C 的水,输出最小的步数,同时输出每一步的操作.如果不能 ...

  4. 实现TextView 文字排版,分散两端对齐

    參考:http://www.cnblogs.com/lcyty/p/3265335.html 方法一:使用HTML TextView textview=(TextView)findViewbyId(R ...

  5. 将svnkit转成dlls时的问题

    未处理 System.TypeInitializationException Message="“org.tmatesoft.svn.core.internal.wc.DefaultSVNO ...

  6. Egret是一套完整的HTML5游戏开发解决方案

    Egret是一套完整的HTML5游戏开发解决方案.Egret中包含多个工具以及项目.Egret Engine是一个基于TypeScript语言开发的HTML5游戏引擎,该项目在BSD许可证下发布.使用 ...

  7. 怎样使用docker不加sudo

    有时候发现docker有的指令必须加sudo才干运行,通过下面三步设置便可不加sudo直接运行docker指令: 1. 假设还没有docker group就加入一个: sudo groupadd do ...

  8. ThreadPoolExecutor的应用和实现分析(中)—— 任务处理相关源码分析 线程利用(转)

    前面一篇文章从Executors中的工厂方法入手,已经对ThreadPoolExecutor的构造和使用做了一些整理.而这篇文章,我们将接着前面的介绍,从源码实现上对ThreadPoolExecuto ...

  9. jsoup方法string转document

    //Document doc2 = Jsoup.parseBodyFragment(element.text());                    //String FieldName=doc ...

  10. Jquery清除:hover事件

    $("#hover_div").unbind("mouseenter").unbind("mouseleave"); 可用于div按钮,造成 ...