zoukankan      html  css  js  c++  java
  • 正睿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 + 传递闭包

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

  • 相关阅读:
    HDU 1501 Zipper(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1254 推箱子(BFS)
    HDU 1045 Fire Net (DFS)
    HDU 2212 DFS
    HDU 1241Oil Deposits (DFS)
    HDU 1312 Red and Black (DFS)
    HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
    HDU 1022 Train Problem I(栈)
    HDU 1008 u Calculate e
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/11617167.html
Copyright © 2011-2022 走看看