写在前面
继前半个月的刷杂题后,学OI的感觉找到了些,于是来刷专题吧!
感觉我接触图论到现在也有一个学期了,然而感觉我还没有系统地搞过图论或者说我是一个图论还没有入门的人>.<
刷图论主要做三件事:
①大白大白;
②BzojBzoj;
③紫书的习题;
我理想的进度安排是:
6.4-6.10搞完除网络流部分,然后开刷网络流,因为现在还没有开始网络流也不知道是什么情况。
知识刷的顺序就按照大白的来。
图的连通
——DFS遍历,割顶,桥,双连通分量,强连通分量
DFS遍历
DFS的神奇之处是什么呢,我感觉是得到的dfs搜索树对于一个节点连的子树都是互不相交的(反向边只可能往上连),有这一性质对于图的连通问题就可以用dfs搜索树把复杂的图论问题转化为树形dp问题了。
二分图染色
确定下一个点其余点都可以推出,矛盾不是二分图。
二分图染色可以做什么?感觉就是能判断是否存在奇环(不是二分图的充要条件)。
割顶与桥
割顶就是去掉后使图不连通的点,桥就是去掉后不连通的边。
对于割顶来说,就是一个点连出去的点形成的连通块不会再连,桥就是两边点形成的连通块不会再连。
怎么求割顶与桥呢?
利用dfs搜索树,对于一个结点,唯一的相连方式就是它的子节点的子树能连到它的祖先(子节点间不可能会连),于是记下pre[]和low[],low[]实时更新就很好判断了。
注意树根的特殊处理。
桥可以和割顶一起求出,low[v]>pre[u]。
另外反向边也是有意思的东西,不在搜索树中出现的边,但正是这些边使得v连到p。
Bzoj1123 POI2008 BLO http://www.cnblogs.com/xkui/p/4553107.html
这道题就是看你有没有理解dfs搜索树及求割顶的过程,本质是一样的。
双连通分量
关于等价类,需要满足自反性(自己和自己可以?)、对称性(a->b则b->a?)、传递性(a->b&&b->c则a->c)。
有点双联通分量和边双联通分量,不过一般都是用的点双连通分量。
定义是一个任意两点存在至少两条点/边不重复的路径。
因为如果存在割顶/桥,就必定要经过割顶/桥了,于是,点双连通分量就是用割顶断开图,边...就是用桥断开图。
另外,每条边恰好属于一个点...,每个点属于一个边...。
两个点...最多一个公共点且就是割顶(不然利用传递性一定可以合并),割顶会是几个点...的公共点。
Bzoj2730 HNOI2012 矿场搭建 http://www.cnblogs.com/xkui/p/4550746.html
这种题就是要模拟情况+讨论一下,注意特殊情况。