强连通: 在一个有向图G里,设有两个点 a,b a , b ,由a有一条路可以走到b,由b又有一条路可以走到a,我们就叫这两个顶点(a,b)强连通。
强连通图: 如果 在一个有向图G中,每两个点都强连通,我们就叫这个图,强连通图。
强连通分量:在一个有向图G中,有一个子图,这个子图每2个点都满足强连通,我们就叫这个子图叫做 强连通分量 [分量::把一个向量分解成几个方向的向量的和,那些方向上的向量就叫做该向量(未分解前的向量)的分量]
原题地址:https://www.luogu.org/problemnew/show/P3387
思路:tarjan缩点之后,重新建图,使用spfa求解最长路。(就是最短路的变形)
具体见代码
/*
有向图求缩点
*/
#include <bits/stdc++.h>
using namespace std;