码迷,mamicode.com
首页 >  
搜索关键字:tarjan    ( 1608个结果
BZOJ2140: 稳定婚姻
题解:题意就是求二分图的必须边。我们有结论:在残量网络上跑tarjan,对于一条边(u,v)如果该边满流||scc[u]==scc[v],那么该边是可行边。因为如果scc[u]==scc[v],那么说明v到u有通路,我们把v-u的路以及u-v这条边全部反色,也就是匹配->非匹配,非匹配->匹配。同样...
分类:其他好文   时间:2014-12-28 14:04:26    阅读次数:485
【强连通】强连通模板 Tarjan
比起双连通的Tarjan我倒是觉得反而简单多了。思想和双连通分量是同一个模式。 #include #include #include #include using namespace std; const int N = 1e5; int dfn[N], scc_id[N]; int deep, scc_cnt; stack s; int dfs(int u) { int ...
分类:其他好文   时间:2014-12-26 18:40:43    阅读次数:172
【连通图】双连通模板 Tarjan
比起求无向图关节点的算法,只是多了一个栈,用来储存不存在关节点的所有边,遇到关节点之后弹出所有边进行储存 int dfs(int u, int fa) { int lowu = dfn[u] = ++deep; int son = 0; for(int i = head[u]; ~i; i = e[i].next) { int v = e[i].v; ...
分类:其他好文   时间:2014-12-26 06:13:59    阅读次数:206
BZOJ 2208 JSOI 2010 连通数 Tarjan+bitset
题目大意:给出一张有向图,若一个点能够到达另一个点,那么说这两个点是一对联通点。问图中共有多少联通点。 思路:先进行一次Tarjan,求出所有的scc,对于一个scc中的点,对答案的贡献就是cnt^2,不同的scc组成了一张可拓扑图,然后对于每个scc维护一个bitset,来统计他自己和标号比它小的scc中共有多少个不同的点。然后进行dp,其中不停的或就可以了。 第一次使用bitset...
分类:Web程序   时间:2014-12-23 15:38:11    阅读次数:238
【连通图|双连通】双连通分量 Tarjan
双连通分量 Tarjan...
分类:其他好文   时间:2014-12-22 22:51:47    阅读次数:208
【连通图】无向图关节点和桥 Tarjan
无向图关节点和桥的求法...
分类:其他好文   时间:2014-12-21 07:06:50    阅读次数:159
tarjan
首先还是说明这是一个坑然后tarjan以前一直处于懵懵懂懂的状态,决定痛改前非好好学。tarjan可以用来求强联通分离。它有两个数组,一个是dfn,一个是low。定义DFN(u)为节点u搜索的次序编号(时间戳)。Low(u)为u或者u的子树能够追溯到的最早的栈中的节点的次序号。然后就发现u的儿子无非...
分类:其他好文   时间:2014-12-19 23:13:36    阅读次数:229
HDU4738 Caocao's Bridges(桥)
http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:给定一张无向图,求其中权值最小的一座桥,派最少的士兵去炸掉它!! 思路:直接用tarjan计算出桥并且取其中权值最小者。 此题坑点甚多,1、有可能桥本来就不联通,输出-1。2、桥最小者为0,输出1(至少排一个人去炸桥)。3、不要去重边,两个岛之间允许有多座桥,tarjan忽略返回边只忽略一次,...
分类:其他好文   时间:2014-12-16 21:03:01    阅读次数:198
hdu2586 LCA
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586思路:在求解最近公共祖先的问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历, 这时候才把u结点放入合并集合中,这样u结点和所...
分类:其他好文   时间:2014-12-15 01:24:41    阅读次数:266
[图论] LCA(最近公共祖先)Tarjan 离线算法
很好的参考资料:http://taop.marchtea.com/04.04.html    下面的配图和部分文字转载于此文章 离线算法就是指统一输入后再统一输出,而不是边输入边实时输出。Tarjan算法的复杂度为O(N+Q),Q为询问的次数. 由于是离线算法,所以要保存输入的信息,次序问题。   若两个结点u、v分别分布于某节点t 的左右子树,那么此节点 t即为u和v的最近公共祖先。更进...
分类:编程语言   时间:2014-12-09 21:27:58    阅读次数:366
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!