![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
菜就多练,不要多想
这个作者很懒,什么都没留下…
展开
-
欧拉回路,欧拉通路(dfs+并查集)
欧拉回路定义: 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径。如果一个回路是欧拉路径,则称为欧拉回路。 要判断无向图G时欧拉回路的充要条件:G是无奇度结点的连通图。(欧拉通路则仅存在两个奇度顶点,并且以此两个顶点为端点)。 所以把握两个条件,一个是无奇度顶点,一个是连通。 前置知识: 无向图顶点度的个数即为与顶点相关联的边的个数。 判断连通可以用两种思路,一个是并查集,一个是dfs; 并查集实现: #include<bits/stdc++.h> using namespace s原创 2020-07-06 16:05:58 · 550 阅读 · 0 评论 -
图的最小生成树(kruskal)
最小生成树定义(白话):给你一个地图,这个地图上有n个城市两两互通,让你选择至少n-1条边可以使n个城市互通,并且使边的总长度之后最短。 第一种思路: 每次选择最短的一条边进行连通,直到选择了n-1条边为止(因为n个点要互通,只需n-1条边即可)。 所以首先要对边从小到大进行排序,每次选择边时,把边的两个顶点加入已连通的集合中,当然,如果这两个顶点都加入了已连通的集合中,就忽略这条边。所以要用并查集去判断两个顶点是否在同一个已连通的集合中。如果是,则舍弃这条边,反之,则把两个顶点中未加入到连通集合的顶点加入原创 2020-07-06 15:34:18 · 280 阅读 · 0 评论