随笔分类 - 图论
摘要:常用于图论计数 Matrix-Tree定理 BEST定理 LGV引理 P7736 [NOI2021] 路径交点 说是LGV引理的模板 LGV引理 DAG上,从长度为 的集合 到 的不交路径数,发现和LGV很像(注意这里的不交是指不过同一结点) 又看到“偶数个交点的方案数-奇数
阅读全文
摘要:前置知识:点双连通分量 定义 圆方树:对于一个点双内的点,拆除点之间所有相连的边,并和一个代表该点双的点连边 圆点为原图中的点,方点代表一个点双 圆方树有狭义和广义两种 狭义圆方树不把“杠铃形”当作点双,有圆圆边 广义圆方树把“杠铃形”当作点双,只有圆方边 狭义圆方树是解决仙人掌问题的利器,详见li
阅读全文
摘要:欧拉路径 代码 细节较多 link 欧拉回路 中国邮递员问题 求从点 出发,遍历所有边,最后回到 的最短路线 考虑回路的性质:每个点的度都为偶数 那么只需要求将奇度点两两配对的最小代价即可 (算法? P6628 [省选联考 2020 B 卷] 丁香之路 把起点和终点连一条边,则转化为
阅读全文
摘要:网络最大流 EK Dinic+当前弧+剪枝 Dinic:BFS分层,每次只向下一层流 当前弧:流完的边删掉 剪枝:流完的点删掉 细节 加反边时反边容量为0,价值取反,不要搞混了(已经搞错3次了) 剪枝优化尽量不用,如果一定要用的话,注意
阅读全文
摘要:强连通分量 细节 对于多点跑tarjan来说,可能会有先访问 中的 ,这导致 ,后面 跑tarjan时会误把 当成祖先,要加判断 割点 & 割边 删去后使图不连通的点/边 找割边和强连通分量求法大差不差,这里不再赘述 找割点不
阅读全文
摘要:点分治 思想 回想序列分治的做法:递归统计两个区间,在统计跨两个区间的贡献 对应到树上也类似:找一个分割点,统计子树的贡献,再统计跨子树的贡献 由于路径都可以被某一级重心统计到,所以点分治长于做路径统计问题 找树的中心 树的中心:以它为根时的最大子树最小的点 处理方式:开全局变量
阅读全文
摘要:二分图染色判定 二分图最大匹配 性质 匹配必须点:即所有最大匹配中都匹配的点(删除该点最大匹配数有变) 非匹配必须点:同理 关于必须点与非必须点的性质: 1、与非必须点相连的点一定是必须点 易证,若为非必须点,则这两点可以相配,不符合最大匹配定义 2、未匹配点一定是非必须点 通过DFS可以在已知最大
阅读全文
摘要:[P5304] 旅行者 集合最短路+二进制拆分 集合最短路 求一个集合S中的点,到任意一个集合T中点的最短路 建立超级源点连S、超级汇点连T即可 二进制拆分 两遍dijkstra染色 [P3953] 逛公园 搜索 考虑搜索出全部合法路径 易想到记录 为 的最短路来剪
阅读全文
摘要:分层图 例1 [P4568] 飞行路线 分层图模板题 给定一张图,你有k次机会将一条边修改权值为0,问最短路 k较小时,可以用分层图解决 例2 [P1266] 速度限制 注意到n,v比较小,考虑分成v层图,但是时间空间会炸 发现每一层对于边u->v的转移相同,考虑只分节点,共用边,即开dis数组开第
阅读全文
摘要:Prim Kruscal Kruscal重构树 由于Kruscal重构树是二叉堆,且瓶颈路最大值在LCA上,可以进行一些树上操作(主席树、树上倍增等) (看看这篇) P4768 [NOI2018] 归程 要求 所在海拔高于 的连通块到结点 的最短路,易知尽量走海拔高的边连通块
阅读全文
摘要:[P5960]【模板】差分约束算法 给出一组包含 个不等式,有 个未知数的形如: \[\begin{cases} x_{c_1}-x_{c'_1}\leq y_1 \x_{c_2}-x_{c'_2} \leq y_2 \ \cdots\ x_{c_m} - x_{c'_
阅读全文
摘要:Floyd算法 BFS求01最短路 题目链接 对于边权只有0和1的图,可以用BFS+deque求最短路 具体做法:前端队列存由0边更新的点,后端存由1更新的点,每次松弛从前端取 比较好想,由于是BFS,可以认为本层转移下,0边转移的点dis都相等,1边转移的点dis都相等(不一定正确),那么从前面取
阅读全文
摘要:拓扑序 1、在做DAG DP时,按拓扑序转移,状态可转移完全 2、从拓扑序小的点连向拓扑序大的点,一定不会成环 3、统计结点 可以到达的点数(待解决) Directing Edges 根据性质2,对有向边构成的图跑拓扑,拓扑序小的连向大的即可 正确性由性质2易知,待证明 P3953 [NOI
阅读全文