博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ 120校园网络(有向图的强连通分量)(Kosaraju算法)
阅读量:5217 次
发布时间:2019-06-14

本文共 1079 字,大约阅读时间需要 3 分钟。

找出各个顶点所属的连通分量,将连通分量的点看作一个点,求这些顶点入度为0的个数和出度0的个数,取最大的即可。

1 #include
2 #include
3 #include
4 #include
5 #define maxn 102 6 using namespace std; 7 vector
G[maxn],G2[maxn]; 8 vector
s;//栈 9 int vis[maxn],10 sccno[maxn], //标记顶点所属的连通分量11 scc_cnt; //记录有几个强连通分量12 void dfs1(int u)13 {14 if(vis[u]) return ; //顶点遍历过则返回15 vis[u] = 1;16 for(int i=0; i
=0; i--)if( !sccno[s[i]] ){ //找强连通分量,找过了则不用找了34 scc_cnt++; //记录找到连通分量的个数35 dfs2(s[i]);36 }37 }38 int main()39 {40 //freopen("in.txt","r",stdin);41 int i,j,T,n,u,ver;42 int in0[maxn],out0[maxn];43 cin>>T;44 while(T--)45 {46 cin>>n;47 for(i=1; i<=n; i++)48 for(j=1; j<=n; j++){49 cin>>ver;50 if(ver==0)break;51 G[i-1].push_back(ver-1); //原图52 G2[ver-1].push_back(i-1);//逆向图53 }54 find_scc(n); //求连通分量55 for(i=1; i<=scc_cnt; i++)in0[i] = out0[i] = 1;//同一个连通分量所有点看成一个点56 for(u=0; u
View Code

 

转载于:https://www.cnblogs.com/qiu520/p/3224811.html

你可能感兴趣的文章
sl学习
查看>>
Django 出现 403 CSRF verification failed. Request aborted. 的解决之道
查看>>
做接口测试没反应
查看>>
跨站图片上传
查看>>
程序员之路--关于代码风格[转载]
查看>>
POJ-1830 开关问题 高斯消元 | 搜索
查看>>
WEB_web2
查看>>
Spring进阶—如何用Java代码实现邮件发送(二)
查看>>
[LeetCode] 513. Find Bottom Left Tree Value
查看>>
LCIS
查看>>
算法:六种比较排序算法
查看>>
ztree总结
查看>>
Java&Selenium自动化测试之Page Object Model
查看>>
TynSerial流的序列(还原)
查看>>
我的Go语言学习之旅二:入门初体验 Hello World
查看>>
输入password登录到主界面,录入学生编号,排序后输出
查看>>
Java 实现适配器(Adapter)模式
查看>>
C#编程(二十五)----------接口
查看>>
Django笔记 3
查看>>
为openstack 制作CentOS镜像
查看>>