当前位置: 首页 > article >正文

1123. 铲雪车(欧拉回路)

活动 - AcWing

随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。

整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减,整个城市只有 1 辆铲雪车。

铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。

现在的问题是:最少要花多少时间去铲掉所有道路上的雪呢?

输入格式

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

下面最多有4000行,每行给出了一条街道的起点坐标和终点坐标,坐标均为整数,所有街道都是笔直的,且都是双向车道。

铲雪车可以在任意交叉口、或任何街道的末尾任意转向,包括转 U 型弯。

铲雪车铲雪时前进速度为 20 千米/时,不铲雪时前进速度为 50 千米/时。

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

输出格式

输出铲掉所有街道上的雪并且返回出发点的最短时间,精确到分钟,四舍五入到整数。

输出格式为”hours:minutes”,minutes不足两位数时需要补前导零。
具体格式参照样例。

数据范围

−106≤x,y≤106
所有位置坐标绝对值不超过 106

输入样例:
0 0
0 0 10000 10000
5000 -10000 5000 10000
5000 10000 10000 10000
输出样例:
3:55
样例解释

输出结果表示共需3小时55分钟。

解析: 

一、在无向图中(所有边都是连通的): 

(1)存在欧拉路径的充分必要条件:度数为奇数的点只能有0或2。 

(2)存在欧拉回路(起点和终点相同)的充分必要条件:度数为奇数的点只能有0个。 

二、在有向图中(所有边都是连通的): 

(1)存在欧拉路径的充分必要条件:要么所有点的入度均等于入度;要么除了两个点之外,其余所有的点的出度等于入度,剩余的两个点:一个满足出度比入度多1(起点),另一个满足入度比出度多1(终点)。 

(2)存在欧拉回路(起点和终点相同)的充分必要条件:所有点的入度均等于出度。 

欧拉回路的dfs用边来判重,不能用点。 

本题根据存在欧拉回路(起点和终点相同)的充分必要条件,易知一定存在欧拉回路,所以答案就是街道距离乘2除以 20 千米/时。

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<map>
#include<sstream>
#include<deque>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
const int N = 2e2 + 5, M = 2e5 + 5, INF = 0x3f3f3f3f;

int main() {
	double x1, y1, x2, y2;
	cin >> x1 >> y1;
	double sum = 0;;
	while (cin >> x1 >> y1 >> x2 >> y2) {
		double dx = x1 - x2;
		double dy = y1 - y2;
		sum += sqrt(dx * dx + dy * dy)*2;
	}
	int minu = round(sum / 1000 / 20 * 60);
	int h = minu / 60;
	minu %= 60;
	printf("%d:%02d\n", h , minu);
	return 0;
}


http://www.kler.cn/a/232910.html

相关文章:

  • 基于微信小程序的乡村研学游平台设计与实现,LW+源码+讲解
  • SpringCloud学习笔记
  • 【vue2.0入门】vue基本语法
  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • C#文字识别API场景解析、表格识别提取
  • Springboot 日志处理(非常详细)
  • 目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解
  • P59---第二阶段B C 相电流
  • 【Kotlin】Kotlin基本数据类型
  • Python 数据分析库之polars使用详解
  • 【语音合成】中文-多情感领域-16k-多发音人
  • 以用户为中心,酷开科技荣获“消费者服务之星”
  • 腾讯云游戏服务器配置有哪些?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Video媒体组件
  • 猫头虎分享已解决Bug || CPU过载(CPU Overload):HighCpuUsageWarning, CpuOverloadException
  • 2022年通信工程师初级 实务 真题
  • ElasticSearch 8.x 使用 High Level Client 以 HTTPS 方式链接,SSL 证书、主机名验证器 各是什么,如何忽略
  • 通过遵循最佳做法来提高 EDA 和 HPC 应用程序的 Azure NetApp 文件性能
  • Spring Data Envers 数据审计实战2 - 自定义监听程序扩展审计字段及字段值
  • linux(redhat)重置root密码
  • python学习笔记 -- 字符串
  • 文心一言 VS 讯飞星火 VS chatgpt (197)-- 算法导论14.3 5题
  • os模块
  • 基于JAVA的免税店商城管理系统 开源项目
  • 【iOS ARKit】3D 人体姿态估计
  • 红队打靶练习:GLASGOW SMILE: 1.1