链接

[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;
}

最新文章

  1. 目前比较全的CSS重设(reset)方法总结
  2. UVA 253 Cube painting(暴力打表)
  3. SQL中 WHERE与HAVING的区别
  4. nginx 3.nginx+fastcgi
  5. SSH整合,&quot;sessionFactory &quot; or &quot;hibernateTemplate &quot; is required异常
  6. PDF修改器
  7. 基于FFMpeg的C#录屏全攻略
  8. python模拟shell执行脚本
  9. Angular1.x使用小结
  10. Docker进阶之一:Docker介绍与体系结构
  11. TypeError: parse() got an unexpected keyword argument &#39;transport_encoding&#39;
  12. 让粒子可以在白色背景显示 [Blending Shader 实操]
  13. 基于AD5663的UV灯电压控制
  14. swoole 使用异步redis的前置条件
  15. 【Luogu4719】动态dp
  16. iOS 新浪微博-5.3 首页微博列表_集成图片浏览器
  17. Linux 终端设备
  18. ICDAR 成绩 前5企业和高校
  19. netty的解码器与粘包和拆包
  20. 【转】java中定义二维数组的几种写法

热门文章

  1. Vue2 学习笔记1
  2. 【MM系列】SAP MB1A MB1B MB1C MB11 MIGO的区别解析
  3. 某游戏公司(凯英网络)PHP开发工程师笔试题
  4. K-means算法的matlab程序(初步)
  5. nodejs前后分离
  6. npm 安装卸载模块
  7. Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
  8. centos7下安装docker(15.4跨主机网络-flannel)
  9. 正则表达式工具RegexBuddy
  10. 洛谷P2845-Switching on the Lights 开关灯