题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1236
题目的大意:有n个学校要进行校内网,那么就要就连通的软件,有一些学校可以从另外的一些学校得到这写软件,比如案例:
2 4 3 0
4 5 0
0
0
1 0
就是第一个学校可以把软件传给第2 4 3 个学校,但是2 4 3 学校未必能够把软件传给1学校。
问题:1 .求至少要给多少给学校传软件,才能使所有的学习收到软件;
2 .若给任意的一个学校传软件都能使所有的学校收到软件,至少要加多少条边。
一题目分析,不能得出这道题是用强连通分量解得,把一个强连通分量压缩成一个点后,那么就得到一个无环的有向图,即一颗树,我们只要给这一棵树的根传一个软件,那么所有的下面的子节点就都可以收到了,根据树的特征,根的入度就是0,那么我们求出所有强连通分量入度为0的个数,就是我们要求最小个数A。 然后我根据案例就猜了b的解救应该是出度为0的强连通个数和入度为0的强连通个数的最大值。呵呵。。结果对了。。。。。。。。。
代码: