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

原创 2015年07月09日 17:09:21

题目地址:NYOJ 7

曼哈顿距离:两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。对于一个具有正南正北、正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西方向上旅行的距离。

思路:因为只能东西和南北方向走,所以先把南北(X)和东西(Y)方向的坐标分开,分别求它们的最值,然后相加即可。分析可以得知,邮局的所建点必须在居民点上,要不然所得的值总会比最小值多出一部分来。知道这个然后让我们来分析:假设在坐标轴X上有n个点,是从1到n,我们所求的目标点在x上,先求点1和n到x的距离只和,很显然x点在1到n之间,然后再求2和n-1到x的距离之和,很显然x点在2和n-1之间,如此重复下去,x的范围不断减小,最后成为中位点。

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <map>
using namespace std;
typedef long long LL;
const int inf=0x3f3f3f3f;
const double pi= acos(-1.0);
const double esp=1e-6;
const int maxn=21010;
int main() {
    int n,m,i,j;
    int sum;
    int x[30],y[30];
    scanf("%d",&n);
    while(n--) {
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        sum=0;
        scanf("%d",&m);
        for(i=0; i<m; i++)
            scanf("%d %d",&x[i],&y[i]);
        sort(x,x+m);
        sort(y,y+m);
        for(i=0; i<m/2; i++) {
            sum+=(x[m-i-1]-x[i])+(y[m-i-1]-y[i]);
        }
        printf("%d\n",sum);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

NYOJ-街区最短路径问题

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

街区最短路径问题 7 (数学 曼哈顿距离)

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

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

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

开开心心学算法--街区最短路径问题的二种解法

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

!HDU 4311 最小曼哈顿距离-思维&卡时间-(横纵坐标分开算,排序)

题意:有n个点,求以这n个点中的某一点为起点,到各点的曼哈顿距离和最小是多少 分析: 暴力枚举又要超时,这种题一般都是考思维了,多半都是用技巧找到一个高效的方法。个人觉得这题跟上一篇文章的题是一个类型...

某个点到其他点的曼哈顿距离之和最小(HDU4311)

Meeting point-1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)...

[Google] 平面上有很多点( x,y均为整数) ,求一个点 ,使该点到 所有点的 曼哈顿距离和 最小

本博客致力于方便 程序员 交流 各类程序问题 主要是笔试面试题目 及经验), 参与 方式: 各位请投稿到 hackjobswww@gmail.com , 标题参考格式: xxx大...

HDU4311 Meeting point-1(曼哈顿距离)

HDU4311 Meeting point-1(曼哈顿距离)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)