zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    爬取 qq,酷我,千千VIP音乐下
    window10虚拟机安装
    爬取qq,酷我,千千VIP音乐 上
    BEAUTIFUL SOUP
    多线程爬取与存储基础
    CODEFORCE ROUND #625 DIV2
    【POJ
    【POJ
    【POJ
    【POJ
  • 原文地址:https://www.cnblogs.com/zzqc/p/7631601.html
Copyright © 2011-2022 走看看