阅读前请确保自己知道强连通分量是什么,本文不做赘述。 Tarjan算法 一、算法简介 Tarjan算法是一种由Robert Tarjan提出的求有向图强连通分量的时间复杂度为O(n)的算法。 首先我们要知道两个概念:时间戳(DFN),节点能追溯到的最早的栈中节点的时间戳(LOW)。顾名思义,DFN就 ...
分类:
编程语言 时间:
2016-10-05 22:08:59
阅读次数:
226
http://acm.hdu.edu.cn/showproblem.php?pid=3078 题意:给出n个点n-1条边m个询问,每个点有个权值,询问中有k,u,v,当k = 0的情况是将u的权值修改成v,当k不为0的情况是问u和v的路径中权值第k大的点的权值是多少。 思路:比较暴力的方法,可能数据 ...
分类:
Web程序 时间:
2016-10-03 18:55:20
阅读次数:
216
E - 不是图论 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu E - 不是图论 Description 给出一个nn个点,mm条边的有向图。每个点上有分值,经过这个点时可以获得一定的分数。 一个点可以经过多次, ...
分类:
其他好文 时间:
2016-10-03 14:48:58
阅读次数:
267
Description 给你一个有向图,求至少询问多少次能够得到全部点的信息. Sol Tarjan + 强连通分量缩点 + 判断. 先缩点,如果我们知道了强连通分量里的任意一个点,我们就可以知道这些点的信息,和这些点所连接的其他点的信息,显然我们需要知道的就是缩点后入度为0的点. 然后还有最后一个 ...
分类:
其他好文 时间:
2016-10-03 10:51:31
阅读次数:
171
Description 一个有向图,求所以能被别的点到达的点的个数. Sol Tarjan + 强连通分量 + 缩点. 缩点以后找强连通分量,缩点,然后当图有且仅有1个出度为1的点时,有答案. Code ...
分类:
其他好文 时间:
2016-10-02 21:47:03
阅读次数:
137
题目链接:http://poj.org/problem?id=1236 题目大意:N(2<N<100)个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输。问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。问题2:至少需要添加几条传输线路(边 ...
分类:
移动开发 时间:
2016-10-02 19:14:15
阅读次数:
166
Description 给出一个无向图,求将他构造成双连通图所需加的最少边数. Sol Tarjan求割边+缩点. 求出割边,然后缩点. 将双连通分量缩成一个点,然后重建图,建出来的就是一棵树,因为每一条边都是桥. 然后每次合并这棵树上的叶节点两点距离LCA最远的点,这样就会形成一个环,是双连通的, ...
分类:
其他好文 时间:
2016-10-01 16:50:20
阅读次数:
248
题目大意:双向联通图, 现在求减少任意一边使图的联通性改变,按照起点从小到大列出所有这样的边 解题思路:双向边模版题 tarjan算法 代码如下: #include<bits/stdc++.h> using namespace std; const int N = 100003; vector<in ...
分类:
其他好文 时间:
2016-10-01 10:32:51
阅读次数:
134
Description 给你一个无向图,求删掉一个点及其连的边后,剩下的图是树结构,求这些点. Sol Tarjan求割点. 只需要求出割点,因为删掉的点只需要满足:不是割点(保证连通),边数位m-(n-2),即可. PS:Tarjan求割点的时候对于根要计算是他子树的点,而不是他的度数. Code ...
分类:
其他好文 时间:
2016-10-01 10:23:40
阅读次数:
151
http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:确定是否是一个强连通图。 思路:裸的tarjan算法。 ...
分类:
其他好文 时间:
2016-09-30 15:18:22
阅读次数:
162