zoukankan      html  css  js  c++  java
  • GHOJ 690 铲雪车

    题目描述

      随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。整个城市所有的道路都是双车道,因为城市预算的削减,整个城市只有1辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。现在的问题是:最少要花多少时间去铲掉所有道路上的雪呢?

    输入格式

      第一行表示铲雪车的停放坐标(x,y),x,y为整数,单位为米。

      下面最多有100行,每行给出了一条街道的起点坐标和终点坐标,所有街道都是笔直的,且都是双向一个车道。铲雪车可以在任意交叉口、或任何街道的末尾任意转向,包括转U型弯。铲雪车铲雪时前进速度为20km/h,不铲雪时前进速度为50km/h。

      保证:铲雪车从起点一定可以到达任何街道。

    输出格式

      铲掉所有街道上的雪并且返回出发点的最短时间,精确到分钟。

    输入样例

    0 0 0 0

    10000 10000

    5000 -10000

    5000 10000

    5000 10000

    10000 10000

    输出样例

    3:55

    题解

      由于是双车道,所以每条边都要遍历两次。其实,我们把题目中给出的道路看作图,那么我们只需要往返遍历一次这张图,就已经铲完雪了。

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    double ans = 0;
    int a, b, c, d;
    
    int main()
    {
        cin >> a >> b;
        while(cin >> a >> b >> c >> d)
        {
            ans += sqrt(abs(a - c) * abs(a - c) + abs(b - d) * abs(b - d)) / 1000 * 2;
        }
        ans /= 20;
        cout << floor(ans) << ':';
        if(round((ans - floor(ans))* 60)  < 10) cout << 0;
        cout << round((ans - floor(ans)) * 60);
        return 0;
    }
    参考程序
  • 相关阅读:
    高精度加法
    高精度计算(一)
    算法总结
    崛起之路
    2015浙江高考满分作文汇总(9篇)
    努力
    NOIP2015总结
    P3197 [HNOI2008]越狱[组合数学]
    【原创】SPFA判负环
    P1351 联合权值[鬼畜解法]
  • 原文地址:https://www.cnblogs.com/kcn999/p/10988947.html
Copyright © 2011-2022 走看看