找出强联通块,计算每个连通块内的点数.将点数最少的那个连通块单独拿出来,其余的连通块合并成一个连通分量. 那么假设第一个连通块的 点数是 x  第二个连通块的点数是 y 一个强连通图(每两个点之间,至少存在一条课互相到达的路径)的边数为n*(n-1) 一个连通图的边数至少为n*(n-1)- x*y + 1 则非连通图最多的边数为n*(n-1)- x*y 即 x*(x-1)+ y*(y-1)+ x*y 因为原图中已经有m条边 所以最多加 x*(x-1)+ y*(y-1)+ x*y - m 条边 这…
1 //题意: 2 //给你一个有向图,如果这个图是一个强连通图那就直接输出-1 3 //否则,你就要找出来你最多能添加多少条边,在保证添加边之后的图依然不是一个强连通图的前提下 4 //然后输出你最多能添加的边的数目 5 // 6 //题解: 7 //1.判断是否是强连通图你可以看一下有几个点的low[x]==dfn[x],如果只有一个,那这个图就是一个强连通图 8 //2. 9 //假如我们有两个子图,我们可以让这两个子图中每一个图内都连上有向边(把子图内部连成完全图).然后再在这两个子图之…
题目链接:https://cn.vjudge.net/contest/67418#problem/G 具体思路:首先用tarjan缩点,这个时候就会有很多个缩点,然后再选取一个含有点数最少,并且当前这个点的出度和入度至少有一个为0,这个原因后面解释.然后选出最少的点 t1 后,当前的图就可以看成两个“缩点”了,除了选出来的t1点,其他点可以形成一个联通块,然后这两个缩点之间可以连着单向边,这样的话能加的边数是最多的.关于为什么选取最小的出度或者入度为0的缩点,就在于两个联通块相连的时候,只能连单…
题意:给你一个图,问最多能添加多少条边使图仍为不是强连通图,如果原图是强连通输出 ‘-1’ 分析:先把求出连通分量进行缩点,因为是求最多的添加边,所以可以看成两部分 x,y,只能一部分向另外一部分连边,内部的就是完全图,所以是x*(x+1)+x*y+y*(y+1)-M,只需要求出来出度或者入度为0的最少点的那个连通分量即可. ********************************************************************** #include<stdio.…
题目链接:https://vjudge.net/problem/HDU-4635 题目:有向图,给定若干个连通图,求最多还能添加几条边,添完边后,图仍然要满足 (1)是简单图,即没有重边或者自环 (2)不是有向强连通图 思路:我们可以这么想,n个顶点,一个有向图边数最多,就是有向完全图,则边数为n*(n-1). 要满足不是强连通图,我们可以假设有一个tarjan缩成的点(scc),它不能到达其他所有点,或者其他所有点 不能到达它,假设这个scc有k个顶点,也就是说,k*(n-k)条边是不存在的,…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给一张图,问最多往这张图上加多少条边,使这张图仍然无法成为一个强连通图. 起初是先分析样例可以知道,一个强连通分量里应当加边加至一个完全图,这样对整个图的连通贡献是没有的.然后把每个强连通分量里的边数扩展至num-out-1,但是发现连通分量之间的关系不好处理,所以反着做. 考虑一张有向完全图的边数为n*(n-1),再去掉现在已经有的边数m,那么不考虑无法成为强连通图这一要求,我们还可以…
思路:想用Tarjan算法进行缩点,并记录每个连通分支的点数.缩点完毕过后,找出所有出度或入度为0的连通分量,假设该连通分量的点数为num[i],那么 ans=Max(ans,(n-num-1)*(n-num)+(num-1)*num+(n-num)*num-m): #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define Maxn 100010 #de…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给你一个n个点m条边的图,问在图不是强连通图的情况下,最多可以向图中添多少条边,若图为原来就是强连通图,输出-1即可: 思路:最后得到的图肯定分为两部分x和y,且两部分均为强连通分量,要么x的点到y的所有点有边,要么,从y的所有点到x的所有点有边:(其中只有入度或出度为0的点才可能成为x或y) 则有         x+y=n  答案为 ans = y*(y-1) + x*(x-1)+…
Strongly connected Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4635 Description Give a simple directed graph with N nodes and M edges. Please tell me the maximum number of the edges you can…
Strongly connected Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 1   Accepted Submission(s) : 1 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Give a simple direct…