zoukankan      html  css  js  c++  java
  • Uva 10305 Ordering Tasks

    题目为简单的拓扑排序。

    第一行输入n,m。n为数字的数目,m为下边有几行数字(i,j)之间的关系。

    数字间的关系,j要排在i的后边。最终排成一个序列。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<queue>
     5 using namespace std;
     6 queue<int>task;
     7 int indegree[102],Map[102][102];
     8 void topo(int taskNum){
     9     int outNum;
    10     for(int i = 1;i <= taskNum;i++){
    11         if(indegree[i] == 0){
    12             task.push(i);
    13         }
    14     }
    15     while(!task.empty()){
    16         outNum = task.front();
    17         printf("%d",outNum);
    18         task.pop();
    19         for(int i = 1;i <= taskNum;i++){//遍历从outNum出发的每一条边,入度减1
    20             if(Map[outNum][i] != 0){
    21                 indegree[i]--;
    22                 if(indegree[i] == 0)task.push(i);
    23             }
    24         }
    25         if(!task.empty())cout<<" ";
    26     }
    27     cout<<endl;
    28 }
    29 int main()
    30 {
    31     #ifndef ONLINE_JUDGE
    32     freopen("d:\acm.txt","r",stdin);
    33     #endif // ONLINE_JUDGE
    34     int taskNum,relation;
    35     while(cin>>taskNum>>relation,taskNum||relation){
    36 
    37         memset(Map,0,sizeof(Map));
    38         memset(indegree,0,sizeof(indegree));
    39         for(int j = 0;j < relation;j++){
    40             int x,y;
    41             cin>>x>>y;
    42             Map[x][y] = 1;
    43             indegree[y] ++;
    44         }
    45         topo(taskNum);
    46     }
    47     return 0;
    48 }

     总结:代码写的不够清晰,容易产生bug

    Donghua University
  • 相关阅读:
    Maven命名约定
    8.30面试
    8.28面试
    8.27面试总结
    vue引入图片之require()
    使用pxtorem时遇到PostCSS plugin postcss-pxtorem requires PostCSS 8
    vue之Missing required prop: "id"
    git首次使用
    vue中style的scoped属性
    JavaScript中的this与function中的this
  • 原文地址:https://www.cnblogs.com/ohxiaobai/p/4097843.html
Copyright © 2011-2022 走看看