码迷,mamicode.com
首页 > 编程语言 > 详细

【拓扑 && 模板】Kosaraju算法

时间:2018-05-22 19:07:35      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:nbsp   ace   mes   pop   bit   拓扑   算法   return   style   

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1000;
 4 vector <int> g1[maxn],g2[maxn];
 5 stack <int> s;
 6 int vis[maxn],sccno[maxn],cnt;
 7 void dfs1(int u){
 8     if(vis[u]) return ;
 9     vis[u]=1;
10     for(int i=0;i<g1[u].size();i++)
11         dfs1(g1[u][i]);
12     s.push(u);
13 }
14 
15 void dfs2(int u){
16     if(sccno[u]) return ;
17     sccno[u]=cnt;
18     for(int i=0;i<=g2[u].size();i++)
19         dfs2(g2[u][i]);
20 }
21 
22 void KK(int n){
23     cnt=0;
24     while (!s.empty()) s.pop();
25     memset(sccno,0, sizeof(sccno));
26     memset(vis,  0, sizeof(vis));
27     for(int i=0;i<n;i++){
28         dfs1(i);
29     }
30     while(!s.empty()){
31         if(!sccno[s.top()]){
32             cnt++;
33             dfs2(s.top());
34         }
35         s.pop();
36     }
37 }
38 int main(){
39     
40     return 0;
41 }

 

【拓扑 && 模板】Kosaraju算法

标签:nbsp   ace   mes   pop   bit   拓扑   算法   return   style   

原文地址:https://www.cnblogs.com/luv-letters/p/9073490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!