博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sicily 有向图边的分类
阅读量:7053 次
发布时间:2019-06-28

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

1 #include 
2 3 using namespace std; 4 5 int graph[101][101]; 6 int kind[101][101]; 7 int vis[101]; 8 int pre[101]; 9 int post[101];10 11 int n, m;12 int ans=0;13 int flag;14 int tag;15 16 void dfs(int x)17 {18 pre[x] = ++tag;19 for(int i=1; i<=n; i++)20 {21 if(graph[x][i])22 {23 if(pre[i] == 0)24 {25 kind[x][i] = 1;26 dfs(i);27 } 28 else29 {30 if(post[i] == 0)31 {32 kind[x][i] = 3;33 flag=0;34 }35 36 else if(pre[i] > pre[x])37 kind[x][i] = 2;38 else39 kind[x][i] = 4;40 }41 }42 }43 post[x] = ++tag;44 }45 46 int main()47 {48 int ca;49 while(cin >> n >> m)50 {51 tag=0;52 flag=1;53 memset(graph, 0, sizeof(graph));54 memset(vis, 0, sizeof(vis));55 memset(kind, 0, sizeof(kind));56 for(int i=0; i
> u >> v;60 graph[u][v]=1;61 }62 dfs(1);63 int q;64 cin >> q;65 for(int i=0; i
> u >> v;69 cout << "edge (" << u << "," << v << ") is ";70 if(kind[u][v] == 1)71 cout << "Tree Edge" << endl;72 if(kind[u][v] == 2)73 cout << "Down Edge" << endl;74 if(kind[u][v] == 3)75 cout << "Back Edge" << endl; 76 if(kind[u][v] == 4)77 cout << "Cross Edge" << endl;78 } 79 }80 return 0;81 }

 

转载于:https://www.cnblogs.com/dominjune/p/4458074.html

你可能感兴趣的文章
AT&T签署8位数合同,设备商恐无法从5G获利
查看>>
Netflix Play API:我们为什么构建了一个演进式架构?
查看>>
我不是仆人,是主人!敏捷中领导力的新比喻?
查看>>
Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly
查看>>
Java API for RESTful Web Services 2.1发布
查看>>
Visual Studio 2017 15.8第一个预览版发布,支持ARM64
查看>>
Java日志性能那些事
查看>>
Invokedynamic:Java的秘密武器
查看>>
Raffi Krikorian 为“在运行中进行架构重写”提供了指南
查看>>
Plaid.com的监控系统如何实现与9600多家金融机构的集成
查看>>
Laravel学习笔记之PHP反射(Reflection) (上)
查看>>
Build Your Own Promise
查看>>
bootstrap - form
查看>>
业务安全通用解决方案——WAF数据风控
查看>>
nginx 配置 默认网站根目录(权限问题导致403 Forbidden错误的解决方法)
查看>>
NodeJS发送邮件
查看>>
iOS动画编程-Layer动画[ 5 ] Animation Groups组合动画
查看>>
谈 DevOps 自动化时,也应该考虑到 SOX 等法案
查看>>
git终极指南:在实际开发中的应用
查看>>
阿里云服务器怎么重装系统?
查看>>