码迷,mamicode.com
首页 > 其他好文 > 详细

sicily 有向图边的分类

时间:2015-04-26 18:18:43      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

http://soj.sysu.edu.cn/show_problem.php?pid=1005&cid=1779

 1 #include <bits/stdc++.h>
 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             else
29             {
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                 else
39                     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<m; i++)
57         {
58             int u, v;
59             cin >> u >> v;
60             graph[u][v]=1;
61         }
62         dfs(1);
63         int q;
64         cin >> q;
65         for(int i=0; i<q; i++)
66         {
67             int u, v;
68             cin >> 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 }

 

sicily 有向图边的分类

标签:

原文地址:http://www.cnblogs.com/dominjune/p/4458074.html

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