poj1236 有向图加边变成强连通图】的更多相关文章

给我们一个有向图,有两个问题 1.最少要给多少个点发消息,才能使得所有的点都收到消息(消息可以随边传递) 2.最少需要多少条边才能使得图变成强连通图 对于一个强连通分量,可以当做一个点来考虑,所以我们可以缩点,然后得到DAG图, 那么对于第一个问,即是入度为0的点有多少个,因为入度为0的点无法收到消息. 对于第二问,只要加max(s1,s2)条边,就能使得DAG变成强连通图,  s1表示入度为0的点的个数,s2表示出度为0的点的个数 设s1 > s2, 那么首先加s2条边,这s2条边连接的是入度…
1 /* 题意: 给你一个图,求这个有向图示否是一个强连通图(每两个节点都是可以相互到达的)! 思路1:按正向边dfs一遍,将经过的节点计数,如果记录的节点的个数小于n,那么就说明图按照正向边就不是连同的,所以就不是强连通图! 然后按照反向边再进行另一个dfs,同样对经过的节点的个数进行计数,如果个数==n则说明正向遍历和反响遍历都是连通的!那么整个图就是强连通的图! 思路2:直接套用tarjan算法,求出每一个节点所对应的缩点的值, 如果缩点的个数==1,那么证明就会只有一个强连通分量!也就是…
poj 1236: 题目大意:给出一个有向图, 任务一: 求最少的点,使得从这些点出发可以遍历整张图  任务二: 求最少加多少边 使整个图变成一个强连通分量. 首先任务一很好做, 只要缩点 之后 求 入度为0的点 的个数就好了.   因为 缩点后无环,任何一个 入度不为0的点, 沿着入边 倒着走回去一定可以到达一个入度为0的点. 任务二: 首先给出结论: 如果整个图已经是一个强连通分量,那么答案是0.  否则求出 缩点后入度为0的点和出度为0的点的个数a,b, 答案就是 max(a,b). 今天…
Network of Schools Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1236 Description A number of schools are connected to a computer network. Agreements have been developed among those schools: e…
Describe: 求一个有向图加多少条边可以变成一个强连通图 Solution: Tarjan缩点染色后,判断出度和入度,所有点的出度 = 0 的和 和 入度 = 0 的和的最大值即为所求. 缩点染色 for(int i = 1;i <= n;++i) { if(!dfn[i]) { tarjan(i); } } void tarjan(int s) { dfn[s] = low[s] = ++tot; stk[stk_siz++] = s; instk[s] = true; for(int…
强连通:在有向图G中,两个顶点间至少存在一条路径,则两个点强连通. 强连通图:在有向图中,每两个顶点都强连通,则有向图G就是一个强连通图. 强连通分量:在非强连通图中的极大强连通子图,就称为强连通分量. 直接根据定义,可以通过双向遍历取交集的方法求强连通分量,但是其复杂度为O(N^2+M).更好的方法是用tarjan算法,其时间复杂度为O(N+M). tarjan:其实就是对图的深度优先遍历. 算法模拟: 定义 DFN [u]为节点u被搜索到时的次序编号(也就是所遍历的第几个): 定义LOW[U…
前面的文章介绍了如何用Tarjan算法计算无向图中的e-DCC和v-DCC以及如何缩点. 本篇文章资料参考:李煜东<算法竞赛进阶指南> 这一篇我们讲如何用Tarjan算法求有向图的SCC( 强连通分量 )已经如何缩点. 给定一张有向图,若对于图中任意两个节点x和y, 既有x到y的路径,又有y到x的路径,则该有向图是一张“强连通图”. 有向图的极大连通子图被称为“强连通分量”,即SCC. 一个环一定是强连通图.如果既有x到y的路径,又有y到x的路径,那么x和y就一定在一个环中. 这就是Tarja…
玛里苟斯 一个大小为 \(n\) 的可重集合 \(a\) ,求 \(\mathbb E[x^k]\) ,其中 \(x\) 为 \(a\) 的一个子集的异或和. \(n\le 10^5,1\le k\le 5\) ,保证答案小于 \(2^{63}\) . 分析 这题挺妙的呢. 保证答案小于 \(2^{63}\) ,其实是告诉我们,答案的二进制位数 小于 64 位 .这就是说,对于一个 \(k\) ,\(a_i\) 的二进制位数 \(m\) 小于 \(\frac{64}{k}\) . 首先明确这样一…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
在图论中,连通图基于连通的概念.在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的.如果 G 是有向图,那么连接vi和vj的路径中所有的边都必须同向.如果图中任意两点都是连通的,那么图被称作连通图.如果此图是有向图,则称为强连通图(注意:需要双向都有路径).图的连通性是图的基本性质.   严格定义(摘抄): 对一个图 G=(V,E) 中的两点 x 和 y ,若存在交替的顶点和边的序列 Γ=(x=v0-e1-v1-e2-...-ek-(v…