POJ 1236 Network of Schools ? 校园网:给定N所学校和网络,目标是分发软件其他学校都可收到,求①所需最少分发学校数;②若任选学校都能收到,最低新增边数。 思路:同一个强连通分量内的顶点合并为一个,在这个DAG上计算出度和入度。①其实是求入度为0的顶点数,②则是求0出度和0 ...
分类:
编程语言 时间:
2020-07-28 16:49:08
阅读次数:
75
###思路 很好,这又是一道模板。 求割点的tarjan和求强连通分量的tarjan原理相同,但是实际写法并不完全相同。要注意的是,对于一个点u,它在不同情况下要满足以下两个条件才能称之为割点: (1)low[v]>=dfn[u](v是u在搜索树上的儿子,且u不在环中) (2)u在搜索树上有两个以上 ...
分类:
其他好文 时间:
2020-07-26 23:01:15
阅读次数:
66
【Tarjan算法的作用】: 求强连通分量; 缩点(将一个环缩成一个点); 割点(这里不谈)…… 【Tarjan算法的过程】: 初始化数组:dfn[u](时间戳:该节点是第几个被首次访问到的),low[u](low[u]表示u或u的子树所能回溯到的栈中的最早的节点的dfn值) 堆栈:将u压入栈顶 更 ...
分类:
其他好文 时间:
2020-07-26 01:20:48
阅读次数:
60
1.图 图是一种非线性数据结构,是网络模型的抽象模型,图是一组由边连接的节点。 2.图的组成 一个图G = (V,E),V:一组顶点,E:一组边 3.强连通图 任何两个节点,它们之间都有路径到达,称为强连通图 4.邻接矩阵 5.领接表 6.字典 我采用是领接表的方法,所以这里我采用字典来存储,每个顶 ...
分类:
Web程序 时间:
2020-07-26 00:24:33
阅读次数:
88
1,o(n)时间内算法 string getmin(string s) { int len=s.length(); s+=s; int i=0,j=1,k=0,t; while(i<len&&j<len&&k<len) { t=s[(i+k)%len]-s[(j+k)%len]; if(t==0) ...
分类:
其他好文 时间:
2020-07-17 22:16:25
阅读次数:
87
强连通图必须从任何一点出发都可以回到原处,每个节点至少要一条出路(单节点除外)至少有n条边,正好可以组成一个环! 在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是 2^a<=i<2^(a+1)2^a<=j<2^(a+1) 设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1 ...
分类:
其他好文 时间:
2020-07-16 21:45:48
阅读次数:
99
今天听了ztcdl的讲解,队友lkt,cyx带了我几道模板题,突然感觉自己行了,特写下强连通分量板子。(可能自己还没睡醒,有勇气写板子了) 强连通分量的预备姿势: ①树上的DFS序(时间戳):一句话,就是按照dfs的遍历顺序,把每个点再对应一个dfn数组,dfn[i]存的就是dfs序的时间戳。 ②D ...
分类:
其他好文 时间:
2020-07-15 23:56:52
阅读次数:
76
之前做tarjan的题,我一直没有搞清楚有向图和无向图中,代码的不同,今天下午向虎哥和zxk讨论了快一个小时,现在终于清楚些了。 最基本的一些东西 有向图 我们需要求的是强连通分量,在有向图中,有四种边。 一种边为树枝边,从根节点遍历,每个节点第一次被访问到,即边(x,y)是从x到y是对y的第一次访 ...
分类:
其他好文 时间:
2020-06-24 21:35:57
阅读次数:
46
又是一道交互题 题目描述:你有一个 \(n\) 个点的竞赛图,有 \(m\) 条边为粉红色,其余为绿色。粉红色边的方向已知,绿色边方向未知,但你可以询问不超过 $2n$ 次一条边 \(\{u,v\}\),交互器会告诉你这条边的方向。求一个点 \(u\),使得对于任意 \(v\neq u\),\(u\ ...
分类:
其他好文 时间:
2020-06-16 20:07:33
阅读次数:
51
有向图强连通分量 1 基本概念 1.1 名词解释 强连通分量:如果有向图中任意两点都有互相可达的路径,则此图为强连通图。有向图G的极大强连通子图称为G的强连通分量(SCC)(单点肯定都是scc,但要使scc尽可能大,所以能大尽量大) dfn[x]数组:时间戳,记录每一个点被dfs访问到的顺序,某个点 ...
分类:
其他好文 时间:
2020-06-15 19:24:35
阅读次数:
43