1. 问题描述:

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

输入格式

输入数据的第 1 行表示铲雪车的停放坐标 (x,y),x,y 为整数,单位为米。下面最多有4000行,每行给出了一条街道的起点坐标和终点坐标,坐标均为整数,所有街道都是笔直的,且都是双向车道。铲雪车可以在任意交叉口、或任何街道的末尾任意转向,包括转 U 型弯。铲雪车铲雪时前进速度为 20 千米/时,不铲雪时前进速度为 50 千米/时。保证:铲雪车从起点一定可以到达任何街道。

输出格式

输出铲掉所有街道上的雪并且返回出发点的最短时间,精确到分钟,四舍五入到整数。输出格式为”hours:minutes”,minutes不足两位数时需要补前导零。具体格式参照样例。

数据范围

−10 ^ 6 ≤ x,y ≤ 10 ^ 6

所有位置坐标绝对值不超过 10 ^ 6。

输入样例:

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

输出样例:

3:55

样例解释
输出结果表示共需3小时55分钟。
来源:https://www.acwing.com/problem/content/description/1125/

2. 思路分析:

分析题目可以知道每一条道路都是双向的,所以对于道路的两个端点来说,入度和出度都是相等的,所以对于图中的道路构成的有向图肯定存在欧拉回路,而铲雪车是在道路中的每一个点,所以最短用时应该是走完欧拉回路,也即所有路径的长度之和的用时,所以我们只需要计算所有路径的长度之和然后求解出用时即可。

3. 代码如下:

import sys
import mathclass Solution:def process(self):# x, y坐标其实是没有用的x, y = map(int, input().split())s = 0.0while True:# 判断是否还有输入t = sys.stdin.readline().strip()if not t: breakx1, y1, x2, y2 = map(int, t.split())s += math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) * 2# round函数可以四舍五入minutes = round(s / 1000 / 20 * 60)hours = minutes // 60# 获取分钟数minutes %= 60# 分钟数保留两位, 不足左边补0return "{:}:{:0>2d}".format(hours, minutes)if __name__ == "__main__":print(Solution().process())

1123 铲雪车(欧拉回路)相关推荐

  1. 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1123. 铲雪车:披着欧拉回路外衣的小学数学题

    文章目录 题目解答 无向图的一笔画 有向图的一笔画 题目来源 题目解答 来源:acwing 分析: 对于一个给定的图,怎样判断是否存在着一个恰好包含了所有的边,并且没有重复的路径?这就是一笔画问题.用 ...

  2. 【图论专题】欧拉路径和欧拉回路

    A.AcWing 1123. 铲雪车(欧拉路的简单思想) 我们将这个图看成有向图,对于每输入一组数据加两条有向边,需要每条边都至少走一遍 我们先回想一下存在有向图的欧拉路径的充分必要条件 所有点的入度 ...

  3. 算法提高课——3.10 欧拉路径和欧拉回路

    欧拉路径和欧拉回路 哥尼斯堡七桥问题 以下内容摘自<信息学奥赛一本通·提高篇>. 欧拉回路问题是图论中最古老的问题之一.它诞生于18世纪的欧洲古城哥尼斯堡,普瑞格尔河流经这座城市,人们在两 ...

  4. AcWing算法提高课 Level-3 第三章 图论

    单源最短路的建图方式 1129. 热浪 思路 :单源最短路算法中除了bellmanford一般不用以外,普D为O(n2)O(n^2)O(n2),优D为O(m∗logn)O(m*logn)O(m∗log ...

  5. 算法——AcWing算法提高课中代码和题解

    文章目录 第一章 动态规划 (完成情况:64/68) 数字三角形模型 最长上升子序列模型 背包模型 状态机模型 状态压缩DP 区间DP 树形DP 数位DP 单调队列优化DP 斜率优化DP 第二章 搜索 ...

  6. AcWing-算法提高课【合集】

    算法提高 动态规划 数字三角形 1015. 摘花生 1018.最低通行费 1027. 方格取数 最长上升子序列LIS 1017. 怪盗基德的滑翔翼 1014.登山 482.合唱队形 1012. 友好城 ...

  7. Acwing1123. 铲雪车(欧拉回路)

    题目 随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了. 整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪.因为城市预算的削减,整个城市只有 1 辆铲雪车. 铲雪车只能把它开过的地方(车 ...

  8. 信息学奥赛一本通 1374:铲雪车(snow)

    [题目链接] ybt 1374:铲雪车(snow) 洛谷 UVA10203 Snow Clearing 注:原题输入要求更复杂,本文代码无法通过. [题目考点] 1. 图论:欧拉回路 2. 两点间距离 ...

  9. 骑马修栅栏(fence) 、铲雪车(snow)

    问题 K: 骑马修栅栏(fence) 时间限制: 1 Sec  内存限制: 128 MB 题目描述 农民John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. John是一个与其 ...

  10. [模板][持续更新]欧拉回路与欧拉路径浅析

    Luogu P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与 ...

最新文章

  1. 求环形数组的最大子数组的和
  2. Java虚拟机详解(七)------虚拟机监控和分析工具(1)——命令行
  3. Windows系统下安装分布式事务组件Seata
  4. 如何解决secureCRT里面的The remote system refused the connection.
  5. 九度oj题目1518:反转链表
  6. 【华为云技术分享】【资料下载合集】HDC.Cloud华为开发者大会2020
  7. python100个内置函数详解_Python 63个内置函数详解
  8. oracle 索引 lob 迁移,Oracle 11g到19c迁移TB级lob表的酸爽
  9. GridView跨页面多选
  10. D.579 - ClockHands
  11. RedisCrawlSpider爬取当当图书信息
  12. 一个苹果证书怎么多次使用——导出p12文件
  13. 解析卷积神经网络学习笔记——魏秀参
  14. python聊天室(tkinter写界面,treading,socket实现私聊群聊查看聊天记录,mysql存储数据)
  15. Java学习笔记:案例:计算公司财务报表
  16. java document对象详解
  17. java最早的游戏_回忆S60(塞班)年代的JAVA游戏
  18. 一篇文章带你搞懂慢SQL以及优化的策略
  19. 学习日记day21 平面设计 构图
  20. 带时效性的条形码_条形码的注意事项

热门文章

  1. div水平(横向)/垂直排列
  2. postgresql数据库 timescaledb 时序库 超级表 块的压缩(compress_chunk()的应用)
  3. 一键seo提交收录_百度网站提交,选择主动提交,还是被动收录?
  4. linux内核 quota,Linux系统磁盘配额(quota)
  5. 【 信息搜集的内容,信息搜集的方法,信息搜集的工具,信息搜集结果的利用等】
  6. 【读点论文】ViTGAN: Training GANs with Vision Transformers 将视觉transformer和gan结合起来
  7. 【路由篇】02. 小米路由器通过Web接口访问硬盘文件
  8. 学习Android路上的一些感慨和总结,慢慢来,比较快!
  9. Electron常见问题 30 - 深度填坑之阴影问题
  10. 适应iPhone5的尺寸