树链剖分
摘要:树链剖分 本质上是将一个树变成多条链,转化成线段树,对树的操作转化成对线段树操作. 树链剖分详解(洛谷模板 P3384) - ChinHhh - 博客园 (cnblogs.com) 模板题: P3384 【模板】轻重链剖分/树链剖分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
阅读全文
posted @
2022-08-23 10:12
naiji
阅读(16)
推荐(0) 编辑
图中走t步的路径数(矩阵加速)
摘要:求图中走t步的路径数(矩阵加速) 当图中任意两个点的距离为1时,求点
X走
T步到达点
Y的路径数。 可以构建矩阵A,
AT即为走
T步的情况。 当图中两点的距离不为1时, SCOI2009] 迷路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 两点的距离较小时,可以
阅读全文
posted @
2022-05-11 15:50
naiji
阅读(76)
推荐(0) 编辑
最短路径条数
摘要:求最短路径的条数 只局限于边的长度为1这种情况 P1144 最短路计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 初始化ans[s]=1; 求最短路时,更新ans数组 void dij() { for (int i = 1; i <= n; i++) dis[i] = M;
阅读全文
posted @
2022-05-11 15:46
naiji
阅读(50)
推荐(0) 编辑
链式前向星
摘要:链式前向星 用数组模拟邻接表vector,本质上和vector是一个东西,只不过是使用数组表示的。 vector使用的是后插入法, 数组模拟时,使用的是前插法。 #include<iostream> #include<cmath> #include<string> #include<deque> #
阅读全文
posted @
2022-01-18 19:45
naiji
阅读(22)
推荐(0) 编辑
图论例题
摘要:图论例题 dfs奇偶二次遍历+博弈论。求源点到其他点是否有奇数路径和偶数路径。(dfs) Problem - B - Codeforces 和上面的很像,求源点到其他各点的最短的奇数路径和偶数路径。(bfs) P5663 [CSP-J2019] 加工零件 有向无环图的拓扑排序及拓扑排序的性质。 Pr
阅读全文
posted @
2021-12-15 15:42
naiji
阅读(31)
推荐(0) 编辑
分层图
摘要:分层图 基本概念: 求最短路径问题时,从点1到点n的最短路径。有种魔法,使一条路的长度变成
1/2. 求使用魔法次数不超过k次,从点1到点n的最短路径。 JLOI2011]飞行路线 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) BJWC2012]冻结 - 洛谷 | 计算机科学教
阅读全文
posted @
2021-11-30 22:18
naiji
阅读(76)
推荐(0) 编辑
全源最短路径
摘要:全源最短路径 P5905 【模板】Johnson 全源最短路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) Johnson 和 Floyd 一样,是一种能求出无负环图上任意两点间最短路径的算法。 1,算法概述 任意两点间的最短路可以通过枚举起点,跑 n 次 Bellman-For
阅读全文
posted @
2021-11-27 19:33
naiji
阅读(95)
推荐(0) 编辑
强连通分量+缩点
摘要:强连通分量+缩点 使用tarjan算法求强连通分量,再把强连通分量缩成一个点。 所需的数据结构 int dfn[10004];//遍历到i节点时的时间戳 int low[10004];//i节点不通过父节点可以回溯到的最小时间戳 int book[10004];//表示i是否入栈 stack<int
阅读全文
posted @
2021-11-13 22:29
naiji
阅读(46)
推荐(0) 编辑
欧拉回路
摘要:欧拉回路 摘自:欧拉回路基本概念+判断+求解 - 王陸 - 博客园 (cnblogs.com) 1,定义 如果图G(有向图或者无向图)中所有边一次仅且一次行遍所有顶点的通路称作欧拉通路。 如果图G中所有边一次仅且一次行遍所有顶点的回路称作欧拉回路。 具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉通
阅读全文
posted @
2021-11-11 14:10
naiji
阅读(374)
推荐(0) 编辑
树的直径
摘要:树的直径 定义 树上所有点的最短距离的最大值。 或者,树上最长的一条路径 算法思想 ①从任意一点P出发,通过DFS寻找离它最远的点Q。 ②再次从点Q出发,通过DFS寻找离它最远的W。 ③直径即为WQ。 【朝夕的ACM笔记】树上问题-树的直径 - 知乎 (zhihu.com)
阅读全文
posted @
2021-11-11 14:09
naiji
阅读(43)
推荐(0) 编辑
二分图
摘要:二分图的最大匹配 摘自二分图的最大匹配 - 爱国呐 - 博客园 (cnblogs.com) 一,概念 如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 U 和V ,使得每一条边都分别连接U、V中的顶点。如果存在这样的划分,则此图为
阅读全文
posted @
2021-11-11 14:09
naiji
阅读(145)
推荐(0) 编辑
树的重心
摘要:树的重心 定义 树的重心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 性质 树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。
阅读全文
posted @
2021-11-11 14:08
naiji
阅读(34)
推荐(0) 编辑
trajan
摘要:trajan 求割点,桥,最近公共祖先(LCA)tarjan算法和倍增, 求割点: P3388 【模板】割点(割顶) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 求桥: P1656 炸铁路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 求桥和割点是一类问题:
阅读全文
posted @
2021-11-11 11:02
naiji
阅读(102)
推荐(0) 编辑
最短路径
摘要:最短路径 单源最短路径: n个点到一个点的最短距离:建立反向图, 方法一, Dijkstra算法:利用贪心思想,(不等处理负权的情况) [dijkstra普通算法](记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) [dijkstra堆优化算法](记录详情 -
阅读全文
posted @
2021-11-11 10:53
naiji
阅读(111)
推荐(0) 编辑
最小生成树
摘要:最小生成树 两种方法: 1,Prim(加点法) 从随便一个点i开始,dis[i]=0,dis[其他点]=无穷, 进行n次循环, 每次找到距离集合最短距离的点k, 更新dis数组,dis数组表示点j到集合的最小距离 若dis[j]>点k和点j的距离,则更新 最后将dis数组求和即为ans 记录详情 -
阅读全文
posted @
2021-11-10 23:03
naiji
阅读(28)
推荐(0) 编辑
拓扑排序
摘要:拓扑排序 是对图(有向无环图)中的顶点按照某种先后顺序进行遍历。 拓扑排序的实现: 用一个数组ind[1000],来表示指向第i个节点的边数, 从ind[i]为0的带你开始遍历,删除该节点连接其他节点的边,且其他节点的ind值-1, 该节点结束后,找到下一个ind为0的节点重复上述过程。 整个遍历过
阅读全文
posted @
2021-11-10 23:02
naiji
阅读(36)
推荐(0) 编辑