图论
文章平均质量分 53
daisy~111
这个作者很懒,什么都没留下…
展开
-
关于tarjan算法的各种题型
tarjan算法求强连通分量求双连通分量求割点求割边求缩点求强连通分量强连通的定义是:有向图 G 强连通是指,G 中任意两个结点连通。强连通分量(Strongly Connected Components,SCC)的定义是:极大的强连通子图。题目链接:https://www.luogu.com.cn/problem/P2863题解:#include<iostream>#include<cstdio>#include<algorithm>using nam原创 2021-01-28 21:39:20 · 113 阅读 · 0 评论 -
图的反向建边
P3916 图的遍历思路:这个题目主要就是反向建边。题解://dfs+反向建边 #include<bits/stdc++.h>using namespace std;#define N 100005int m,n,u,v,A[N];vector<int>G[N];//二维数组存储反向边 void dfs(int x,int d){ if(A[x]) return;//被访问过 A[x] = d; for(int i=0;i<G[x].size()原创 2021-01-27 22:26:58 · 421 阅读 · 0 评论 -
P6867 [COCI2019-2020#5] Politicari——模拟+找规律
P6867 [COCI2019-2020#5] Politicari题目描述有 n 个人互相批评。另提供矩阵 A。规则如下:第一次,第 1 个人批评第 2 个人。如果第 i−1次为第 u个人批评第 v 个人,那么第 iii 次为第 v 个人批评第 Av,u 个人。求第 kkk 次是谁进行批评(注意:不是被批评)。输入格式第一行:两个正整数,n 和k。以下 n 行:矩阵 A。矩阵的主对角线(就是从左上到右下的那条对角线)全是 0,其他部分由从 1到 n的正整数组成。输出格式原创 2021-01-22 23:42:39 · 391 阅读 · 0 评论 -
强连通分量
一、定义有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。弱连通图将有向图的所有的有向边替换为无向边,所得到的图称为原图的基图。如果一个有向图的基图是连通图,则有向图是弱连通图。二、算法①Tarjan算法int dfn[N], low[N], dfnc原创 2021-01-16 23:24:57 · 226 阅读 · 0 评论 -
差分约束系统
差分约束系统一、定义如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。观察xj-xi<=bk,会发现它类似最短路中的三角不等式d[v]<=d[u]+w[u,v],即d[v]-d[u]<=w[u,v] [1] 。因此,以每个变量xi为结点,对于约束条件xj-xi<=bk,连原创 2021-01-16 16:54:14 · 229 阅读 · 0 评论 -
最小生成树与最短路径的区别
区别:①最小生成树能够保证首先是树(对于n个顶点的图只有n-1条边),其次保证任意两个顶点之间都可达,再次保证这棵树的边权值之和为最小,但不能保证任意两点之间是最短路径;最短路径保证从源点S到目地点D的路径最小(有向图中不要求终点能到起点),不保证任意两个顶点都可达;② 一个图如果有负权环…路径长可以无穷小 ,因为可以不断的走这个环降低权值,而最小生成树是有限的,它不是你怎么走的问题,而是生成一个两两都可达的最小权值和的树的问题。③ 最小生成树是用最小代价遍历整个图中所有顶点,所有的权值和最小。而最原创 2021-01-14 22:02:41 · 4533 阅读 · 1 评论 -
最小生成树
最小生成树1、定义①树——每个顶点都在树上;没有闭环。②最小——边上的权值和最小若有n个顶点,则有n-1条边。2、实现算法:①Kruskal(克鲁斯卡尔)算法——直接选择权值最小的边首先,将边的权值由小到大排序;再遍历边的集合,若该边加入后构成环,则继续遍历;否则,将该边加入到最短边的集合中,直到选中n-1条边。 最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示原创 2021-01-14 16:19:38 · 156 阅读 · 0 评论 -
最短路径问题
最短路径问题系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录最短路径问题系列文章目录1.最短路径介绍最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:①确定起点的最短路径问题即已知起始结点,求最短路径的问题。②确定终点的最短路径问题与确定起点的问题相反,原创 2021-01-12 20:37:24 · 4248 阅读 · 0 评论 -
二分图匹配——匈牙利算法
匈牙利算法它是二分图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。这篇文章讲无权二分图(unweightedbipartite graph)的最大匹配(maximum matching)和完美匹配( perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm)相关知识介绍:二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,即没有边连接组内的点,则这就是一个二分图。准确地说:把一个图的顶原创 2021-01-14 23:03:21 · 161 阅读 · 0 评论