CCF 高速公路 (tarjan强联通)

题意:给一个有向图,求可互通的点的对数(原点不计),这个问题可以转换为在一个有向图里找出所有的环,既然是找环,那么就显然是求强连通分量,我的写法是Tarjan算法

代码如下:

#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 10000+7;

int n, m, idx, ans, dfn[maxn], low[maxn];
bool vis[maxn], ins[maxn];
stack s;
vector g[maxn];

void Tarjan(int u)
{
    dfn[u] = low[u] = ++idx;
    ins[u] = true;
    vis[u] = true;
    s.push(u);

    int vs = g[u].size();
    for(int i=0; i


你可能感兴趣的:(解题报告)