摘要:
知识点-Tarjan 割点:在一个无向连通图中,如果删掉点 x 后图的连通块数量增加,则称点 为图的割点。 条件: 1)对于搜索树上的非根结点 x ,如果存在子节点 i 满足 F[i]>=D[x] ,即 i 向上无法达到 x 的祖先,则 x 为割点,这一点比较能够理解。 2)对于搜索树上的根节点x, 阅读全文
2017年4月21日
摘要:
知识点-Tarjan 强连通分量:在一个图的子图中,任意两个点相互可达,也就是存在互通的路径,那么这个子图就是强连通分量(或者称为强连通分支)。如果一个有向图的任意两个点相互可达,那么这个图就称为强连通图。 当我们实现基于dfs的Tarjan算法时,我们用D[i]记录节点i被访问的时间(别的博客用d 阅读全文
2017年4月19日
摘要:
知识点-差分约束 题目地址:POJ1364 例题 题目描述 对于一个序列数字序列S。给出(si, ni, 0, ki)。 如果是(si,ni,gt,ki),意思就是存在约束条件S[si]+S[si+1]+...S[si+ni] > ki,如果是(si,ni,lt,ki),意思就是存在约束条件S[si 阅读全文
2017年4月18日
摘要:
知识点-差分约束 上题目POJ3169 例题 题目描述 n头牛编号为1到n(2<=n<=1000) ,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0。这些牛的距离存在着一些约束关系:1.有ml组(u, v, w)的约束关系,表示牛[u]和牛[v]之间的距离必须 <= w。2.有md组(u, 阅读全文
摘要:
原题地址:POJ1201 知识点-差分约束 类型:给出一些形如a-b<=k的不等式(或a-b>=k或a-b<k或a-b>k等),问是否有解,或是求差的极值。 例子:b-a<=k1,c-b<=k2,c-a<=k3。将a,b,c转换为节点;k1,k2,k3转换为边权;减数指向被减数,形成一个有向图: 由 阅读全文
2017年4月14日
摘要:
知识点-树链剖分 “在一棵树上进行路径的修改、求极值、求和”:乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度 阅读全文