zoukankan      html  css  js  c++  java
  • 联通分量

    老早就学过,但发现理解的不是很好

    而且发现这个东西细节贼重要

    1.缩点

    缩点是对于有向图的强联通分量

    即在同一个强联通分量中每个点都能到达另一个点

    代码:

    http://www.cnblogs.com/yinwuxiao/p/8444680.html

    2.2-sat以及输出方案

    对于每个点拆成两个点

    对于每一个限制条件,连两条边

    另外 如果i一定是真的 从i'向i连一条边

    假的同理

    然后缩一下点然后看看i和i’在不在同一个连通分量里

    然后如何输出方案呢

    我们记录出和每一个强联通分量对应的那个块(即i和i’的关系 可以发现对于i在一起的 i’一定在一起)

    对于同一个强联通分量里的点,显然值是一样的

    我们考虑倒着拓扑排序

    因为倒着的话就能满足它的前提条件

    然后对于访问到的点 如果还没有被判断 就判断为1 并对它的反点(只有一个) 判断为0

    这样就做完了

    代码:http://www.cnblogs.com/yinwuxiao/p/8481612.html

    下面的都是针对无向图的

    1.割点

    删去这个点使原图有多个联通块的点就是割点

    代码:http://www.cnblogs.com/yinwuxiao/p/8831728.html

    2.点-双联通分量

    每个点双中任意两点都有两条点不想交的路径

    点双与割点的关系

    删去割点后的图每个都是一个点双

    所以点双中重复出现的点都是割点

    代码:

    3.边-双联通分量

  • 相关阅读:
    git命令总结
    Junit
    zookeeper--概述
    NIO与Socket
    分区分表
    ThreadLocal
    垃圾收集器
    垃圾收集算法
    主从复制
    Redis--集群
  • 原文地址:https://www.cnblogs.com/yinwuxiao/p/8808134.html
Copyright © 2011-2022 走看看