算法提高课-图论-欧拉回路和欧拉路径-AcWing 1123. 铲雪车:披着欧拉回路外衣的小学数学题
文章目录
- 题目解答
- 无向图的一笔画
- 有向图的一笔画
- 题目来源
题目解答
来源:acwing
分析:
对于一个给定的图,怎样判断是否存在着一个恰好包含了所有的边,并且没有重复的路径?这就是一笔画问题。用图论的术语来说,就是判断这个图是否是一个能够遍历完所有的边而没有重复。这样的图现称为欧拉图。这时遍历的路径称作欧拉路径(一个环或者一条链),如果路径闭合(一个圈),则称为欧拉回路。
一笔画定理:
无向图的一笔画
连通的无向图 G{\displaystyle G}G有欧拉路径的充要条件是:G{\displaystyle G}G中奇顶点(连接的边数量为奇数的顶点)的数目等于0或者2。
连通的无向图 G{\displaystyle G}G 是欧拉环(存在欧拉回路)的充要条件是:G{\displaystyle G}G中每个顶点的度都是偶数。
有向图的一笔画
一个连通有向图G{\displaystyle G}G有欧拉路径,指存在一个顶点,从它出发,沿着有向边的方向,可以不重复地遍历图中所有的边。
有向图的欧拉回路则是指可以从某一顶点开始,沿有向边的方向不重复地遍历所有边,然后回到原来出发的顶点。
一个连通的有向图可以表示为一条从顶点u{\displaystyle u}u到v{\displaystyle v}v的(不闭合的)欧拉路径的充要条件是:
- u{\displaystyle u}u的出度(从这个顶点发出的有向边的数量)比入度(指向这个顶点的有向边的数量)多1,v{\displaystyle v}v的出度比入度少1,
- 而其它顶点的出度和入度都相等。
一个连通的有向图是欧拉环(存在欧拉回路)的充要条件是以下两个之一:
- 每个顶点的出度和入度都相等;
- 存在一系列的(有向)环C1,C2,⋯,Cm{\displaystyle C_{1},C_{2},\cdots ,C_{m}}C1,C2,⋯,Cm,使得图G{\displaystyle G}G里的每一条边都恰好属于某一个环。
来源:维基百科
对于本题:
因为题目告诉了铲雪车从起点一定可以到达任何街道,并且本题所有边都是双向的,而且每个点的出度和入度都相等。所以一定是欧拉回路,可以一笔画,这样的话就是求每条道路的长度。
看似是欧拉路径求长度的问题,实际上是一道脑筋急转弯问题,只需要求出每条路的长度,由于是双向的,所以需要乘以2,然后除以铲雪的速度,就可以求出总的时间,然后进行四舍五入求分钟。
ac代码
#include<bits/stdc++.h>
using namespace std;
const int N = 4010;
// 本题的图中所有点的入度和出度都是相等的,所以存在欧拉回路
typedef long long LL;double get(double x1, double y1, double x2, double y2){double dx = x1 - x2;double dy = y1 - y2;return sqrt(dx * dx + dy * dy) * 2;
}
int main(){double x,y;cin >> x >> y;double sum = 0;double x1, y1, x2, y2;while(cin >>x1 >> y1 >> x2 >> y2){sum += get(x1, y1, x2, y2);}int minutes = round(sum/ 1000 /20 * 60);int hours = minutes / 60;minutes %= 60;printf("%d:%02d", hours, minutes);
}
题目来源
https://www.acwing.com/problem/content/1125/
算法提高课-图论-欧拉回路和欧拉路径-AcWing 1123. 铲雪车:披着欧拉回路外衣的小学数学题相关推荐
- 算法提高课-图论-有向图的强连通分量-AcWing 367. 学校网络:强连通分量、tarjan算法
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 第一问:通过tarjan算法求出强连通分量并且缩点后,统计入度为0的点的个数p即可. 第二问,至少加几条边才能使图变成强连通分量?这 ...
- 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1185. 单词游戏:判断有向图是否存在欧拉路径、并查集
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 把每个单词看成一条边!!!首字母到尾字母的一条边,最多共有26个点(26个小写的英文字母),然后问能否把所有边串起来. 其实,对欧拉 ...
- 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1124. 骑马修栅栏:欧拉路径、dfs
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 本题是无向图的欧拉路,要输出字典序最小的欧拉路. 如何输出字典序最小的路径? 从最小的点开始搜,这样得到的欧拉路是字典序最小的. 无 ...
- 算法提高课-图论-欧拉回路和欧拉路径-AcWing 1184. 欧拉回路:有向图和无向图的欧拉回路
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 无向图欧拉回路:1)所有点的度都为偶数:2)所有边连通 有向图欧拉回路:1)所有点的入度等于出度:2)所有边连通 AC代码 #inc ...
- 算法提高课-图论-负环-AcWing 361. 观光奶牛:spfa判正环、负环、01分数规划、二分
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 题目要求ΣfiΣgi\frac{\Sigma{f_i}}{\Sigma{g_i}}ΣgiΣfi的最大值,这种问题称为01分数规 ...
- 算法提高课-图论-差分约束- AcWing 1169. 糖果:spfa求单源最短路、差分约束
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 差分约束系统 差分约束系统是一种特殊的N元一次不等式组.它包含N个变量X1,...,XnX_1,...,X_nX1,...,Xn ...
- 算法提高课-图论-有向图的强连通分量-AcWing 1174. 受欢迎的牛:tarjan算法求强连通分量、tarjan算法板子、强连通图
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 强连通图:给定一张有向图.若对于图中任意两个结点x,y,既存在从x到y的路径,也存在从y到x的路径,则称该有向图是"强连通 ...
- 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题
题目分析 来源:acwing 分析: 道路:双向,边权非负, 航线:单向,边权可正可负,且无环. 根据题意,点可以分为很多团(连通块),团内部只有道路(道路是双向的,而且是连通的,所以不能存在航线,否 ...
- 算法提高课-图论-单源最短路的建图方式-AcWing 903. 昂贵的聘礼:建图巧妙、dijkstra、考虑等级
题目分析 来源:acwing 由于终点是1号节点,建立虚拟节点S,如下建图(根据样例画图).S出发和每个点直连的边权代表直接买该物品花的金币数:而由S到1的任意一条通路,边权之和就是花费的金币数.所以 ...
最新文章
- 利用Github搭建自己的图床
- linux ubuntu R 无法安装rggobi包的原因及解决方案
- 浅谈JavaScript、ES5、ES6
- tensorflow学习笔记七----------卷积神经网络
- Struts2的标签概述
- WORD 如何在方框里打勾?
- 今天需要修复的bug
- ubuntu16.04中将自己的ubuntu做成镜像
- android studio选中全部,android - Android Studio风格维度已全部处理,未选中一项 - 堆栈内存溢出...
- 文件I/O(不带缓冲)之read函数
- 2022年微信权重号养号方法
- cad插入块_CAD图块全攻略:别羡慕我下班早,我的CAD软件会开挂!
- R语言基础编程技巧汇编 - 13
- Centos7 配置163邮箱
- 递归算法中的时间复杂度分析
- JAVA多线程使用场景和注意事项
- 搜狗输入法输入上下标
- 数据库课程设计——滴滴打车系统
- 学习笔记(01):遥感影像深度学习样本制作-计算机视觉工具制作样本
- 吉大c语言编程作业答案,吉林大学C语言习题