正睿OI国庆DAY2:图论专题
dfs/例题
判断无向图之间是否存在至少三条点不相交的简单路径
一个想法是最大流(后来说可以做,但是是多项式时间做法
旁边GavinZheng神仙在谈最小生成树
陈主力说做法是dfs
首先两个点一定在点双联通分量里
- 点双是简单环,只有两条,不存在
- 猜测其他情况存在三条
双联通分量分解
输出情况可以用dfs树判,讨论非树边覆盖情况
- 内包含
- 下面分叉连到上面
- 相交
输出点即可
BFS/例题
BFS树没有跳跃边
计数/动态规划有用吧
树上bfs序好像可以判断距离?
边权为0/1 双端队列BFS
最短路
dijkstra有时候可以用桶代替堆(注意值域)
最小生成树
- 最小瓶颈路
- 次小生成树
- 生成树计数/Matrix tree
割点/桥
点双的割点相邻关系形成圆方树
边双的桥形成边双树
答案为1:求S到T某条路径上的所有的桥
答案为2:每次枚举一条路径上的边,求所有的桥
其他知识点
- 欧拉回路
- 2-SAT
做网络流题
杂题
-
AGC 038D(构造桥连通块+分析)
-
计蒜之道2016 百度地图的实时路况(缺点最短路)
-
sums GYM100753M
找模数,建(min(a)*n)条边算最短方案
可以优化,边权优化成0-1
bitset加速:快速求出bit<10^5> a[10^5]
-
bitset + 传递闭包
陈主力还说图论的一般都是网络流~