【搭楼】大力开刷图论

写在前面

继前半个月的刷杂题后,学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

这种题就是要模拟情况+讨论一下,注意特殊情况。

  

时间: 2024-11-14 03:55:56

【搭楼】大力开刷图论的相关文章

【搭楼】(6月-9月) 停课日常Daily Plan

写在前面 15/06/18 真是一个特殊的日子 去年今日,我考完了中考迎来了暑假 今年此时,停课了竞赛生活正式开始 记得去年考完和同学们觉得 “突然一下子很空虚不知道干什么了” 那时候在学习上真是毫无追求 自从入OI坑之后改变还真是大 话说一年有多长? 怎么有种“恍若隔世,恍若刹间”之感? 6.23-7.03 一中夏令营 大概回来几个神犇讲课,但教的内容和我们略脱节 7.05-7.14 省队集训 四年一轮回在我校,大概还是可以围观下啥的 然后就是学各种知识,刷各种题 立一些flag 该学的都要学

【搭楼】(6.25-7.02) 一中集训

听说我校搞了一个集训 虽然这是强行伪装竞赛强校的行为,不过会有一些神犇来那么必须要兹瓷 然而集训内容好像和我脱节了的样子 不过总比平时天天考一些pj组难度的题要好 6.25-6.26 Delayyy篇 Day1 因为昨日打cf,所以三点多才睡(*首发紫名好开心*) 整个早上的状态都像在做梦 T1 20傻逼dp,40大力修改父亲就可以了.一开始挂了一发,因为状态不明以至于不好修改.  打完之后发现随机的极限数据可以秒出是什么节奏,然后希望能大力出奇迹.现在想来也真是too young too si

是时候开刷NOI了

整天挨着毛爷爷,压力好大.. 看毛爷爷即将炖完NOI,我的确也该刷了 原则是从头到尾自己想(虽然看了一次题解),可以不A掉. NOI2009 day1: T1 题目略神,我还是不讲了...(就这题我WA了好多遍 TAT) 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <bitset> 5 #include <vector> 6 7 #defin

【搭楼】做题记录

以后做了题还是在这里写一下,觉得好的再去发题解(感觉无脑发题解意义不大) 也不一定是做了的题,看了没打但觉得不错的也可以发上来 (5.23-5.24 第三次月考被X得相当爽) 5.23 星期六 [贪心]Bzoj4027 HEOI2014 兔子与樱花 要是父亲合并儿子又合并就混乱了.然后发现,反正贡献都是一?能合并就在儿子处合并?贪心. [分块]Bzoj3343 教主的魔法 做之前知道了tag,于是很快就想到了算法.还没打过分块呢,于是先去膜拜了一下别人的代码.自己打出来后各种WA,太晚了没调出来

算是回归的第一晚 (啥也不记得了。。从模板开刷!!)

#include <ctype.h> #include <cstdio> #define N 10000050 void read(int &x) { x=0;bool f=0; char ch=getchar(); while(!isdigit(ch)) {if(ch=='-') f=1;ch=getchar();} while(isdigit(ch)) {x=x*10+(int)ch-'0';ch=getchar();} x=f?(~x)+1:x; } int n,m,

android官方教程从零开刷(二)

Building a Simple User Interface The graphical user interface for an Android app is built using a hierarchy of The graphical user interface for an Android app is built using a hierarchy of View and ViewGroup objects. View objects are usually UI widge

android官方教程从零开刷(三)

接下来就不能偷懒了,ActionBar很重要. Adding the Action Bar   Setting up the Action Bar 要设置一个ActionBar很容易,在android 3.0以上都会自动显示ActionBar,但是在3.0一下的版本就需要使用兼容包才能使用ActionBar Adding libraries without resources Make sure you have downloaded the Android Support Library us

android官方教程从零开刷(一)

晕死,写PPT写到十一点半,我只是想安安静静的写代码,写个毛线的PPT,写完还说不行,让重写,头都大了,哥现在只想做个coder而已,现在还是鱼肉,人为刀俎,不说了,不能第一天就挖坑不填. Getting Started   Building Your First App     Creating an Android Project 创建一个工程,不能更熟了,从上到下依次是应用名称,工程名称,包名,最低sdk版本,最高版本,使用的编译版本,app的主题 当然也可以用命令行来进行创建 在tool

android官方教程从零开刷

学android开发已经有一段时间了,但是一直觉着很多东西记忆的不是很牢固,很多时候要用到的知识还要看笔记才能想起来,而且之前学android也是靠看书为主,东一块西一块,从来没有将学到的东西整合一下,google的官方教程是一套系统的教程,基本上包含了android的所有功能,所以决定将google教程走一遍,以便学习加深印象.从今天开始每周最少写两篇android学习笔记. 官网教程目录如下: Building Apps withMultimedia Building Apps withGr