• 1029:积雪清理


    题目描述

    小明所在的城市昨晚下了一场大雪,所有道路都被积雪覆盖了。为了保证交通畅通,需要动用除雪车清理道路上的积雪,但是整个城市只有一辆除雪车。
    城市的每条道路都有两条行车道,除雪车可以单向清除一条道路的一条行车道上的积雪,并且除雪车可以在任意一个路口改变方向(包括U形转弯),同时在任意一条道路的尽头可以掉头(U形)到另一条行车道行驶。
    除雪车在除雪时以20km/h的速度行驶,在积雪已经被清除的车道上则以50km/h的速度行驶。
    现请你计算,除雪车清理完所有道路的所有车道,并且最后回到车库最少需要多长时间?

    输入格式

    输入的第一行包含两个整数x和y,表示停放除雪车的车库的坐标。
    接下来若干行,每行输入四个实数x1,y1,x2,y2,表示某条道路的起始点坐标,所有道路均为直路。
    车库的坐标一定位于某条道路的线段上。
    输入中的所有坐标单位均为米。

    输出

    输出除雪车清理完所有道路的所有车道,并且最后回到车库最少需要多长时间,格式为hh:mm,结果将秒四舍五入到分。

    样例输入

    0 0
    0 0 10000 10000
    5000 -10000 5000 10000
    5000 10000 10000 10000

    样例输出

    03:55

    怎样才是最短呢?

      一条道分两行,清理到尽头可以跳跃到另一条道清理,最少时间就是清理完雪就回到原点,清理时要记得是清理两行的积雪

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6         double x1,y1,x2,y2,s=0,t;
     7         int m;
     8         scanf("%*d%*d");
     9         while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
    10                 s+=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    11         t=s/20000*2;
    12         m=(t-(int)t)*60+0.5;
    13         if(m==60)
    14                 printf("%02d:00
    ",(int)t+1);
    15         else
    16                 printf("%02d:%02d
    ",(int)t,m);
    17         return 0;
    18 }
  • 相关阅读:
    webpack从零的实践(新手良药)
    throttle和debounce
    call(),apply(),bind() 区别和用法
    vue 路由钩子。
    vue 兄弟组件之间的传值
    JS 面向对象封装 无限轮播 插件。
    element-ui 解决 table 里包含表单验证的问题!
    Vue.nextTick 的原理和用途
    JavaScript中基本数据类型和引用数据类型的区别
    PS批量修改照片大小
  • 原文地址:https://www.cnblogs.com/sairre/p/3952480.html
Copyright © 2020-2023  润新知