uva 10305 拓扑排序裸题

Posted zzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 10305 拓扑排序裸题相关的知识,希望对你有一定的参考价值。

https://vjudge.net/problem/UVA-10305

     目前没学dfs做法,用的队列做法,每次找到一个入度为零的点出队后更新其他点,再加入入度为零的点直到查找完毕,这个题目显然一定有解不必考虑无解的情况。

   

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int in[105];
 4 bool e[105][105];
 5 int main()
 6 {
 7     int n,m,i,j,k;
 8     while(cin>>n>>m&&(n||m)){j=0;
 9         queue<int>q;
10         memset(in,0,sizeof(in));
11         memset(e,0,sizeof(e));
12         int a,b;
13         for(i=1;i<=m;++i)
14         {
15             cin>>a>>b;
16             e[a][b]=1;
17             in[b]++;
18         }
19         for(i=1;i<=n;++i)
20         {
21             if(in[i]==0) q.push(i);
22         }
23         while(!q.empty()){
24             int u=q.front();q.pop();
25             if(j==0) {j++;cout<<u;}
26             else cout<< <<u;
27             for(i=1;i<=n;++i)
28             {
29                 if(e[u][i]){
30                     in[i]--;
31                     if(in[i]==0){
32                         q.push(i);
33                     }
34                 }
35             }
36         }puts("");
37     }
38     return 0;
39 }

 

以上是关于uva 10305 拓扑排序裸题的主要内容,如果未能解决你的问题,请参考以下文章

UVA10305 拓扑排序

[拓扑排序]Ordering Tasks UVA - 10305

UVA10305:拓扑排序

图——拓扑排序(uva10305)

Uva 10305 Ordering Tasks(拓扑排序模版题)

uva-10305-水题-拓扑排序