![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 53
&稚始稚终
这个作者很懒,什么都没留下…
展开
-
E. Weights Distributing(图论)
E. Weights Distributing(图论,贪心)题目传送门:E. Weights Distributing题目大意:有n个点,m条路径,每次经过一条路径时都需要一次该路径的花费。有一个花费数组对应着每一条路径,要求给出一个权值分配方案使得从点a->b->c的花费最小为多少。思路:1.假设a->b之后b->c没有经过之前经过的点,那么也就是三点之间经过的路径是一条直线。2.否则b->c经过了之前经过的x,那么也就有了a->x->b->x原创 2021-05-09 23:52:05 · 118 阅读 · 0 评论 -
强连通分量
强连通分量什么是强连通图?如果一个有向图中,存在一条回路,所有的结点至少被经过一次,这样的图为强连通图。什么是强连通分量?在强连通图的基础上加入一些点和路径,使得当前的图不再强连通,称原来的强连通的部分为强连通分量。求强连通分量有何作用?在进行对其他图论问题求解前,利用强连通分量的知识可以把图中强连通的点缩为一个点,减少接下来其他图论操作的计算。在某些特定的环境下,求强连通分量变相地得出了图中的环以及环的长度。利用Tarjan算法求强连通分量Tarjan算法的基本思路首先考虑强连通分转载 2021-04-10 21:04:48 · 171 阅读 · 0 评论 -
Tarjan求割点与桥
割点与桥的概念割点:简单的说就是,删掉这个点和这个点有关的边,图就不是连通图,分裂成了多个不连接的子图。桥:删掉这条边后,图就不再是连通图,分裂成为多个不连通的子图。求割点算法思想:首先选定一个根节点,从根节点开始遍历整个图(使用dfs)对于根节点:如果有2棵即以上的子树,就是割点(因为如果去掉这个点,这两棵子树就不能互相到达)对于非根节点如果节点U的所有孩子节点可以不通过父节点U而访问到U的祖先节点,那么说明:即使去掉节点U也不影响图的连通性,U不是割点。如果节点U至少存在一个孩转载 2021-03-16 00:08:52 · 207 阅读 · 0 评论 -
求K短路(A*+dijkstra)模板
#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define ll long long const int maxn=1e6+5;int n,m,s,t,k,r,cnt,p1,p2,head1[maxn],head2[maxn],vis[maxn];ll d[maxn];struct node{ int to,w,next;}e1[maxn],e2[maxn];struct qnode转载 2021-03-09 21:38:07 · 115 阅读 · 0 评论