zoukankan      html  css  js  c++  java
  • nyoj 7 街区最短路径问题

     

    街区最短路径问题

    时间限制: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
    
    来源
    经典题目
    上传者
    iphxer
     
    直接枚举 计算出最短距离
    View Code
     1  
     2 #include <iostream> 
     3 using namespace std;
     4 
     5 int ab(int x)
     6 {
     7     if (x>0)
     8     {
     9         return x;
    10     }
    11     return -x;
    12 }
    13 
    14 int main()
    15 {
    16     int n;
    17     cin>>n;
    18     while (n--)
    19     {
    20         int m,j,k,i;
    21         int a[20],b[20];
    22         cin>>m;
    23         for ( i=0;i<m;i++)
    24         {
    25             cin>>a[i]>>b[i];
    26         }
    27         int num=0,c[100000]={0};
    28         for (i=1;i<100;i++)
    29         {
    30             for (j=1;j<100;j++)
    31             {
    32                 for (k=0;k<m;k++)
    33                 {
    34                     c[num]+=ab(i-a[k])+ab(j-b[k]);
    35                 }
    36                 num++;
    37             }
    38         }
    39         int high2=c[0];
    40         for (i=0;i<num;i++)
    41         {
    42             if (c[i]<high2)
    43             {
    44                 high2=c[i];
    45             }
    46         }
    47         cout<<high2<<endl;
    48     }
    49     return 0;
    50 }        
  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/wujianwei/p/2636953.html
Copyright © 2011-2022 走看看