Tarjan
图论算法,求有向图的强连通分量,环等等;
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
树形背包+Tarjan缩点 [HAOI2010]软件安装(洛谷 P2515)
[HAOI2010]软件安装题目描述现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为MM计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件ii依赖软件j)。幸运的是,一个软件最多依赖另外...原创 2020-03-23 19:34:49 · 103 阅读 · 0 评论 -
Tarjan缩点+拓扑dp [USACO15JAN]Grass Cownoisseur G(洛谷 P3119)
[USACO15JAN]Grass Cownoisseur G题目描述In an effort to better manage the grazing patterns of his cows, Farmer John has installed one-way cow paths all over his farm. The farm consists of N fields, conve...原创 2020-03-21 10:54:34 · 138 阅读 · 0 评论 -
Tarjan求割点+数学 [POI2008]BLO-Blockade(洛谷 P3469)
[POI2008]BLO-Blockade题目描述There are exactly nn towns in Byteotia.Some towns are connected by bidirectional roads.There are no crossroads outside towns, though there may be bridges, tunnels and flyo...原创 2020-03-20 22:15:50 · 118 阅读 · 0 评论 -
Tarjan缩点 [USACO5.3]校园网Network of Schools (洛谷 P2746)
[USACO5.3]校园网Network of Schools题目描述一些学校连入一个电脑网络。那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”)。注意即使 B 在 A 学校的分发列表中,A 也不一定在 B 学校的列表中。你要写一个程序计算,根据协议,为了让网络中所有的学校都用上新软件,必须接受新软件副本的最少学校数目(子任务 A)。更进一步,我们想要确定通过给任...原创 2020-03-19 14:35:16 · 118 阅读 · 0 评论 -
Tarjan缩点 学习笔记
Tarjan缩点Tarjan缩点用到的思想就是Tarjan求有向图的强连通分量,然后把强连通分量合在一起,就叫缩点;模板题:洛谷 P3387 【模板】缩点在Tarjan求强连通分量的基础上,加上拓扑排序求DAG的最长路;代码:#include<bits/stdc++.h>#define LL long long#define pa pair<int,int>...原创 2020-03-19 13:37:09 · 164 阅读 · 0 评论 -
Tarjan 求割点、割边学习笔记
Tarjan 求割点先说一下割点是什么?学习博客割点只针对无向连通图而言,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点;前面学习了Tarjan求有向图的强连通分量,当low[i]==dfn[i]时,i 就和 i 前面入栈的形成了强连通图;割点和那个求法有点不一样,分为两种情况:当 i 为根时,如果它有两个以上的子树时(不是儿子),那么 i 一定为割点;...原创 2020-03-18 15:24:30 · 306 阅读 · 0 评论 -
Tarjan算法 学习笔记
TarjanTarjan 是一种可以求有向图强连通分量的算法,它能做到线性时间的复杂度。学习博客学习之前要先记住两个关键数组:low[i] 表示栈中元素可以到达 i 的最小位置(也就是最靠近栈底);dfn[i] 表示 i 元素在遍历过程中的标号(就是dfs遍历,第几个遍历到);个人认为这个算法最关键的是理解当 dfn[i]==low[i] 时,在 i 元素后面入栈的都是强连通分量(也...原创 2020-03-17 23:03:45 · 180 阅读 · 0 评论