1、简介tarjan是一种使用深度优先遍历(DFS)来寻找有向图强连通分量的一种算法。 2、知识准备栈、有向图、强连通分量、DFS。 3、快速理解tarjan算法的运行机制提到DFS,能想到的是通过栈来储存沿途的点,可以找到所有的环。环本身就是联通的,所以环对于强连通分量来说环已经很接近最终答案了。 ...
分类:
编程语言 时间:
2019-07-04 09:40:06
阅读次数:
115
"bzoj 2959: 长跑" 可以看作是这道题的加强版:https://www.luogu.org/problemnew/show/P2542 看到动态维护$Tarjan$缩点就考虑使用$LCT$,使用一个并查集$f$表示点$i$所在的点双的“标志”点是哪一个,$link$时分类讨论一下即可 然后 ...
分类:
其他好文 时间:
2019-07-03 00:12:31
阅读次数:
89
模拟的时候切掉的,感觉这道题还是很好的。(虽然T1期望啥也不会积分瞎搞拿了个二十五分,T2好不容易搞了个字符串dp,最后数组还开小了……不过终于狗进前五) 题面描述: 构建一个N个点的有向图G,初始没有任何边。接下来构建一个长度为E的边的序列A,序列中每条边都是满足1≤s,t≤N且s≠t的有向边(s ...
分类:
其他好文 时间:
2019-07-02 21:29:36
阅读次数:
129
前置技能: "tarjan求强连通分量" 缩点 。 顾名思义,就是在图论算法中将一些点缩成一个点的一种算法。 应用 貌似明白了,但是这有什么用呢? 我们经常求最短路,但是如果我们要求最长路呢? 标准问法: 给你一张有向图,每个点都有一个点权(不是边权了哦),且每一个点都可以经过任意多次,但是点权只能 ...
分类:
编程语言 时间:
2019-07-02 21:22:10
阅读次数:
589
开始学tarjan的时候,有关无向图的割点、桥、点双边双缩点都比较容易地理解了,唯独对有向图的缩点操作不甚明了。通过对luoguP2656_采蘑菇一题的解决,大致搞清了tarjan算法的正确性。 首先放出有向图缩点tarjan函数的写法: } while (x != u); 问题主要出在函数的第二部 ...
分类:
编程语言 时间:
2019-06-30 18:40:00
阅读次数:
115
这里就是复健计划啦!虽然实际上我只是把以前的归档复制了一遍而已啦,当然我加了一些基础的东西在里面就是了。 计划打算在七月初开始(只要不咕)。 感觉是在水博客啊……没事,应该没人看(滑稽) 学完的后面打个√。 图论 建图方法 最短路 生成树 拓扑排序 Tarjan相关 2-SAT 欧拉回路 虚树 圆方 ...
分类:
其他好文 时间:
2019-06-24 16:52:52
阅读次数:
104
P3387 【模板】缩点 静下心来去看 其实真的很好理解 突然搞不懂我之前为什么死活都看不懂 参悟了学长的代码还有BYVoid的讲解 放一下BYVoid大佬的tarjan伪代码 帮助理解 还有各种变量的含义 (from黄学长 栈里的元素表示的是当前已经访问过但是没有被归类到任一强连通分量的结点dfn ...
分类:
其他好文 时间:
2019-06-12 11:11:34
阅读次数:
108
为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以通过这个通道由A房间到达B房间,但并不说明通过它可以由B房间到达A房间。Gardon需要请你写个程序确认一下是否 ...
分类:
其他好文 时间:
2019-06-08 19:11:09
阅读次数:
90
题目描述 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,怎么办呢?! DYJ分析了一下所有营员的地域关系,发现有些营员是一个城 ...
分类:
其他好文 时间:
2019-06-07 23:12:24
阅读次数:
271