equivalences专题

HDU2767Proving Equivalences(强连通+缩点+ 至少加几条边让整个图变成强连通))

题意: 至少加几条边让整个图变成强连通。 思路:对于N个点的图,我们知道至少需要N条边才能使这个图强连通,现在我们先对题目的图计算一下强连通,对于已经在一个强连通的点,把他们看做为一个点,然后对新形成的图,计算出度,入度为0的最大值,因为,加一边,可以使入度,出度加一。 #include<cstdio>#include<iostream>#include<algorithm>#incl

uva 12167 - Proving Equivalences(强连通)

题目链接:uva 12167 - Proving Equivalences #include <cstdio>#include <cstring>#include <vector>#include <stack>#include <algorithm>using namespace std;const int maxn = 20005;int N, M, in[maxn], o

Proving Equivalences HDU - 2767

点击打开链接 求再加多少边可以使整个图构成一强连通分量 tarjan缩点即可 一开始想找缩点后有多少链 再把链连起来。。发现错的离谱 找入度为零的点和出度为零的点各有多少 取最大值即可 有点贪心的意思 因为把两个强连通分量连接的最好办法就是将度为零的点相连 还有注意坑点 只有一个强连通分量时要直接输出0   #include <bits/stdc++.h>using namespa