#Snow{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; background: rgba(255,255,240,0.1); pointer-events: none; }

随笔分类 -  图论

摘要:树链剖分的思想及能解决的问题 树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。 具体来说,将整棵树剖分为若干条链,使它组合成线性结构,然后用其他的数据结构维护信息。 树链剖分(树剖/链剖)有多种形式,如 重链剖分,长链剖分 和用于 Link/cut Tree 的剖分(有时被称作“实链剖分 阅读全文
posted @ 2022-10-31 16:02 繁花孤城 阅读(35) 评论(0) 推荐(0) 编辑
摘要:流网络: G=(V,E)是一个有向图,图中每条边(u,v)有一个非负的容量值c(u,v)>=0, 相关定理及证明论文参考 dicnic(n^2m) #include<bits/stdc++.h> using namespace std; const int N=1e4+10; const int M 阅读全文
posted @ 2022-10-19 12:51 繁花孤城 阅读(29) 评论(0) 推荐(0) 编辑
摘要:欧拉路径:如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。 欧拉回路:如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit)。 具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。 存在条件 一、无向图 1 存在欧 阅读全文
posted @ 2022-10-19 10:53 繁花孤城 阅读(558) 评论(0) 推荐(0) 编辑
摘要:kruskal 1.建立并查集,初始每个点为一个集合。 2.每次找到剩余的最短边加入并查集。 #include<bits/stdc++.h> using namespace std; int n,m; int ans; int f[100086]; struct ret { int x,y,z; } 阅读全文
posted @ 2022-10-08 22:20 繁花孤城 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Dijkstra算法和SPFA算法都可以用于求单源最短路,前者可以用小根堆进行优化,后者用就是用队列优化过的Bell-man Ford,下面说一说这两者的区别: Dijkstra算法是基于贪心和DP的思路,一开始先将所有点到原点的距离设置为无穷大,特别的是dis[s]=0,此处的s为原点,它是每次找 阅读全文
posted @ 2022-10-07 07:54 繁花孤城 阅读(138) 评论(0) 推荐(0) 编辑
摘要:Tarjan 算法是基于深度优先搜索的算法,用于求解图的连通性问题。Tarjan 算法可以在线性时间内求出无向图的割点与桥,进一步地可以求解无向图的双连通分量;同时,也可以求解有向图的强连通分量、必经点与必经边。 如果你对上面的一些术语不是很了解,没关系,我们只要知道 Tarjan 算法是基于深度优 阅读全文
posted @ 2022-10-07 07:48 繁花孤城 阅读(21) 评论(0) 推荐(0) 编辑
摘要:二分图的判定 不存在奇数环。 可以通过匈牙利算法,染色判定。 bool dfs(int x,int t) { st[x]=t; for(int i=head[x];i;i=ne[i]) { int y=ver[i]; if(!st[y]) { if(!dfs(y,3-t)) return 0; } 阅读全文
posted @ 2022-10-07 07:44 繁花孤城 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示