
强连通
文章平均质量分 82
会飞的小蛇
这个作者很懒,什么都没留下…
展开
-
(Tarjan)洛谷P3387【模板】缩点
洛谷P3387【模板】缩点 思路: 虽然是缩点模板题,但是明显感觉比同一个题单中的其他题都难。 题目思路已经提供给你:Tarjan缩点+DAGdp。就是用Tarjan缩点,重新建图之后,边拓扑排序边建边。 Tarjan DAGdp 代码: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long #define cl(x,y) memset(x,y,sizeof(x)) #define ct cerr原创 2020-09-04 09:10:22 · 283 阅读 · 1 评论 -
(Tarjan)洛谷P1262间谍网络
洛谷P1262间谍网络 思路: 我们可以发现,不能被控制的间谍是不能被收买且不能被出卖。如果能够直接或者间接控制间谍的话,那么要么是收买入度为0的间谍,要么是几个间谍形成一个环,收买其中的最小值。 那么我们就通过可以被收买的间谍进行缩点,不断缩小给的钱的值。然后再看看有没有点没有被遍历到的点,如果有,就是有间谍不能被控制。否则,我们就将入读为0的点加起来。 注意缩点的时候,将所有的点缩成一个点,类似于并查集一样。在下面遇到这个点的时候,也要注意要用它的fa结点。 代码: #include<bits/s原创 2020-09-03 20:29:27 · 232 阅读 · 0 评论 -
Tarjan总结
Tarjan 算法: tarjan算法中比较重要的是dfndfndfn和lowlowlow数组。dfndfndfn是时间戳,或者理解是dfs序。 lowlowlow是所谓的追溯值。先令low[x]=dfn[x]low[x]=dfn[x]low[x]=dfn[x]。现在有一条边(x,y)(x,y)(x,y),如果xxx是yyy的父节点,low[x]=min(low[x],low[y])low[x]=\min(low[x],low[y])low[x]=min(low[x],low[y]);否则low[x]=m原创 2020-08-31 21:02:05 · 253 阅读 · 0 评论 -
(强连通分量)洛谷P2341【模板】强连通分量 / [HAOI2006]受欢迎的牛
洛谷P2341【模板】强连通分量 / [HAOI2006]受欢迎的牛 思路: 如题目描述,模板题。 花了两个小时看了tarjan,然后看了题目。what?excuse me?为啥跟我看到的东西感觉不太一样?然后看了大佬的题解,what?为啥叫容易看出,为啥我看不出? 啥叫强连通分量呢,简而言之,一个图的子图中任意两点可以相互到达。(就是构成了一个环)。 下面说tarjan算法。 其中两个重要的数组...原创 2020-01-24 17:05:11 · 734 阅读 · 2 评论