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

Ordering Tasks

时间:2019-01-26 21:02:49      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:code   排序   ble   string   cto   size   vector   链接   set   

链接

[https://vjudge.net/contest/281085#problem/D]

题意

有n个任务,有M个对先后顺序
然你输出最后的完成任务的顺序,有多种可能输出一种即可

分析

裸的拓扑排序,需要队列和vector

代码

#include<iostream>
#include<string.h>
#include<vector>
#include<queue>
using namespace std;
int n,m,a,b;
int in[110]; 
int main(){
    //freopen("in.txt","r",stdin);
    while(cin>>n>>m&&(n+m)){
        vector<int> v1[110];
        memset(in,0,sizeof(in));
        for(int i=1;i<=m;i++)
        {
            cin>>a>>b;
            v1[a].push_back(b);
            in[b]++;
        }
        queue<int> q;
        vector<int> v2;
        
        for(int i=1;i<=n;i++)
        if(in[i]==0) q.push(i);
        //cout<<q.size()<<endl;
        while(!q.empty()){
            int p=q.front();
              q.pop();
            v2.push_back(p);
            for(int i=0;i<v1[p].size();i++){
                in[v1[p][i]]--;
                if(in[v1[p][i]]==0)
                q.push(v1[p][i]);
            }
        }
        for(int i=0;i<v2.size();i++)
        cout<<v2[i]<<‘ ‘;
        cout<<endl; 
    }
    return 0;
} 

Ordering Tasks

标签:code   排序   ble   string   cto   size   vector   链接   set   

原文地址:https://www.cnblogs.com/mch5201314/p/10324805.html

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