正睿OI国庆DAY2:图论专题

正睿OI国庆DAY2:图论专题

dfs/例题

判断无向图之间是否存在至少三条点不相交的简单路径

一个想法是最大流(后来说可以做,但是是多项式时间做法

旁边GavinZheng神仙在谈最小生成树

陈主力说做法是dfs

首先两个点一定在点双联通分量里

  1. 点双是简单环,只有两条,不存在
  2. 猜测其他情况存在三条

双联通分量分解

输出情况可以用dfs树判,讨论非树边覆盖情况

  1. 内包含
  2. 下面分叉连到上面
  3. 相交

输出点即可

BFS/例题

BFS树没有跳跃边

计数/动态规划有用吧

树上bfs序好像可以判断距离?

边权为0/1 双端队列BFS

最短路

dijkstra有时候可以用桶代替堆(注意值域)

例题:codeforces 575G

最小生成树

  1. 最小瓶颈路
  2. 次小生成树
  3. 生成树计数/Matrix tree

割点/桥

点双的割点相邻关系形成圆方树

边双的桥形成边双树

例题:codeforces700C

答案为1:求S到T某条路径上的所有的桥

答案为2:每次枚举一条路径上的边,求所有的桥

其他知识点

  1. 欧拉回路
  2. 2-SAT

做网络流题

杂题

  1. AGC 038D(构造桥连通块+分析)

  2. 计蒜之道2016 百度地图的实时路况(缺点最短路)

  3. sums GYM100753M

    找模数,建\(\min(a)*n\)条边算最短方案

    可以优化,边权优化成0-1

    bitset加速:快速求出bit<10^5> a[10^5]

  4. bitset + 传递闭包

陈主力还说图论的一般都是网络流~

你可能感兴趣的:(正睿OI国庆DAY2:图论专题)