zoukankan      html  css  js  c++  java
  • UVa 10305 Ordering Tasks【拓扑排序】

    题意:给出n件事情,m个二元组关系,求它们的拓扑序列

    用的队列来做

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath> 
     5 #include<stack>
     6 #include<vector>
     7 #include<map> 
     8 #include<set>
     9 #include<queue> 
    10 #include<algorithm>  
    11 using namespace std;
    12 
    13 #define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i)
    14 
    15 typedef long long LL;
    16 const int INF = (1<<30)-1;
    17 const int mod=1000000007;
    18 const int maxn=100005;
    19 int ecnt;
    20 int n,m;
    21 
    22 int g[1005][1005],in[1005],ans[maxn];
    23 
    24 void toposort(){
    25     queue<int> q;
    26     
    27     for(int i=1;i<=n;i++)
    28     if(in[i]==0) q.push(i);
    29     
    30     int cnt=0;
    31     while(!q.empty()){
    32         int tmp=q.front();q.pop();
    33         ans[++cnt]=tmp;
    34         
    35         for(int j=1;j<=n;j++){
    36             if(g[tmp][j]){
    37                 in[j]--;
    38                 if(in[j]==0) q.push(j);
    39             }
    40         }        
    41     }
    42     
    43     printf("%d",ans[1]);
    44     for(int i=2;i<=cnt;i++)
    45     printf(" %d",ans[i]);    
    46     printf("
    ");
    47 }
    48 
    49 
    50 int main(){
    51     while(scanf("%d %d",&n,&m)!=EOF){
    52         if(n==0&&m==0) break;
    53         
    54         memset(g,0,sizeof(g));
    55         memset(in,0,sizeof(in));
    56         
    57         while(m--){
    58             int u,v;
    59             cin>>u>>v;
    60             g[u][v]=1;
    61             in[v]++;
    62         }
    63         toposort();
    64     }
    65     return 0;        
    66 }
    View Code
  • 相关阅读:
    Java实现 LeetCode 92 反转链表 II
    Java实现 LeetCode 92 反转链表 II
    Java实现 LeetCode 91 解码方法
    Java实现 LeetCode 91 解码方法
    Java实现 LeetCode 91 解码方法
    CDialogBar(对话条)和CReBar(伸缩条)的编程
    WinSock
    WinSock
    静态文本显示图标图片
    拆分窗口
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4455984.html
Copyright © 2011-2022 走看看