zoukankan      html  css  js  c++  java
  • 解题:USACO13FEB Taxi

    题面

    因为每次只能载一头牛,所以总路程=每头牛的距离+回头路的最短距离,于是问题变成了如何求回头路的最短距离

    我们可以把起点和终点存在两个数组里,然后将两个数组排序后取对应位置相减的绝对值就是每次走回头路的最短距离。然后鬼畜的地方来了,Bessie的起点和终点是特殊的,我们要将她的起点放入终点的数组,终点放入起点的数组。

    你问为什么Bessie的要特殊考虑么?我太蒻了,我也不知道啊=。=

    网上的题解并没有任何一个严谨地说明了为什么要把Bessie的起点和终点特殊处理,然后USACO的官方题解并没有看懂,所以哪位路过的大佬如果明白为什么麻烦回复一下蒟蒻啊QAQ

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 const int N=100005;
     6 long long a[N],b[N];
     7 long long n,m,cnt,ans;
     8 long long abso(long long x)
     9 {
    10     return x>0?x:-x;
    11 }
    12 int main()
    13 {
    14     scanf("%lld%lld",&n,&m);
    15     for(int i=1;i<=n;i++)
    16     {
    17         scanf("%lld%lld",&a[i],&b[i]);
    18         ans+=abso(b[i]-a[i]);
    19     }
    20     a[n+1]=m,b[n+1]=0;
    21     sort(a+1,a+1+n+1),sort(b+1,b+1+n+1);
    22     for(int i=1;i<=n+1;i++)
    23          ans+=abso(a[i]-b[i]);
    24     printf("%lld",ans);
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    cache in c#
    c#解析xml
    自动执行任务管理---TaskManage
    IConfigurationSectionHandler 使用~
    Autofac
    黑苹果教程(四)———MAC OS 10.11+固态硬盘+自定义引导
    android安装Linux,玩转Android
    精通android(Pro Android 4)面试题总结(二)
    精通android(Pro Android 4)面试题总结(一)
    Mac上的词典扩充
  • 原文地址:https://www.cnblogs.com/ydnhaha/p/9839053.html
Copyright © 2011-2022 走看看