求强连通子图的方法以及简单实现

  • Post author:
  • Post category:其他


刚学 其实操作很简单 正向建立一个图 跑一遍 标记上时间 然后反过来再跑一遍(注意有可能区域不联通) 标记mark


Korasaju algorithm

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
int vis[300];
int edge[300][300];
int tedge[300][300];
int mark[300];
int n,m;
int cnt=0;
int flag=0;
int now[300];
int nex[300];
int x=1;
void dfs(int start)
{
    for(int i=1;i<=n;i++)
    {
        if(i!=start&&!vis[i]&&edge[start][i])
        {vis[i]=1;now[i]=++cnt;dfs(i);nex[i]=++cnt;}
       // cout<<start<<'



版权声明:本文为qq_34271269原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。