BestHack.....真乱.....

逃生

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 139    Accepted Submission(s): 20

Problem Description
糟糕的事情发生啦,如今大家都忙着逃命。可是逃命的通道非常窄。大家仅仅能排成一行。

如今有n个人,从1标号到n。同一时候有一些奇怪的约束条件,每一个都形如:a必须在b之前。
同一时候,社会是不平等的,这些人有的穷有的富。1号最富,2号第二富,以此类推。

有钱人就贿赂负责人。所以他们有一些优点。

负责人如今能够安排大家排队的顺序,因为收了优点,所以他要让1号尽量靠前,假设此时还有多种情况,就再让2号尽量靠前,假设还有多种情况,就让3号尽量靠前。以此类推。

那么你就要安排大家的顺序。

我们保证一定有解。

Input
第一行一个整数T(1 <= T <= 5),表示測试数据的个数。
然后对于每一个測试数据,第一行有两个整数n(1 <= n <= 30000)和m(1 <= m <= 100000),分别表示人数和约束的个数。

然后m行,每行两个整数a和b。表示有一个约束a号必须在b号之前。a和b必定不同。

Output
对每一个測试数据,输出一行排队的顺序。用空格隔开。
Sample Input
1 5 10 3 5 1 4 2 5 1 2 3 4 1 4 2 3 1 5 3 5 1 2
Sample Output
1 2 3 4 5
Author
CLJ
Source
BestCoder Round #1
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>using namespace std;const int maxn=63000;int n,m;struct Edge
{int to,next;
}edge[maxn*3];int Adj[maxn],Size=0,du[maxn];
bool used[maxn];void Add_Edge(int u,int v)
{edge[Size].to=v;edge[Size].next=Adj[u];du[v]++;Adj[u]=Size++;
}void init()
{memset(Adj,-1,sizeof(Adj));Size=0;memset(du,0,sizeof(du));memset(used,false,sizeof(used));
}priority_queue<int,vector<int>,less<int> > q;
vector<int> vc;int main()
{int T_T;scanf("%d",&T_T);while(T_T--){init();vc.clear();scanf("%d%d",&n,&m);for(int i=0;i<m;i++){int a,b;scanf("%d%d",&a,&b);Add_Edge(b,a);}for(int i=1;i<=n;i++)if(du[i]==0) q.push(i);while(!q.empty()){int u=q.top(); q.pop();vc.push_back(u);for(int i=Adj[u];~i;i=edge[i].next){int v=edge[i].to;du[v]--;if(du[v]==0)q.push(v);}}int sz=vc.size();for(int i=sz-1;i>=0;i--){if(i!=sz-1) putchar(32);printf("%d",vc[i]);}putchar(10);}return 0;
}

转载于:https://www.cnblogs.com/mfmdaoyou/p/6860929.html

HDOJ 4857 逃生相关推荐

  1. HDU 4857 逃生 (反向拓扑排序 容器实现)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 逃生 Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  2. hdu 4857 逃生 拓扑排序

    逃生 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4857 Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只 ...

  3. HDU Problem 4857 逃生【拓扑排序+优先队列】

    逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  4. HDU 4857 逃生 【拓扑排序+反向建图+优先队列】

    逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  5. HDU 4857 逃生 拓扑排序好题 第一次做CLJ出的题

    逃生 Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b ...

  6. hdoj 4875 逃生

    逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. HDU 4857 逃生(拓扑排序)

    拓扑排序 一.定义 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若<u,v> ∈ ...

  8. 反向拓扑排序 HDU 4857 逃生

    题意:n个结点,m个拓扑关系(a,b)表示a必须排在b前面,在满足m个拓扑关系关系的前提下使得小的结点尽可能的排在前面.也就是说我们现在要从1号结点开始考虑,如果要排1号结点,根据拓扑关系,首先必须排 ...

  9. 拓扑排序总结(Kahn算法)

    随便记录点东西 在拓扑排序中,排序结果唯一当且仅当所有顶点间具有全序关系. 快速排序不是稳定的(偏序关系),因为相同元素之间的关系无法确定. 插入排序是稳定的(全序关系),因为相同元素可以通过位置的先 ...

最新文章

  1. [转] 视频直播前端方案
  2. 「Apollo」Apollo感知汇总
  3. B17_NumPy IO(save,load,savez,loadtxt,savetxt)
  4. 深度学习背后的数学_深度学习背后的简单数学
  5. oracle 更新参数,Oracle动态、静态参数参数修改规则
  6. python排大小函数_python numpy 一些函数 大小排序和统计
  7. 20145302张薇《Java程序设计》第十周学习总结
  8. ubuntu18.04 中个性化配置vim方法
  9. Exchange 2016与国内版O365混合部署(4):配置Exchange 公网证书
  10. 特斯拉造芯片:不能失去集成电路的高地,就像西方不能失去耶路撒冷
  11. bootable_noemulation.img linux,Syslinux使用
  12. 解决Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve com.android.supp
  13. php滑动拼图验证,如何在PHP环境下实现滑动拼图验证
  14. 基于 钉钉认证 通过 华为、H3C 结合 OpenPortal认证计费系统 实现 网络准入 钉钉授权 实名认证
  15. java对象的内存分配流程
  16. 显卡系列和种类你了解多少?AMD、NVIDIA显卡盘点
  17. 千锋android培训学院!双非渣本Android四年磨一剑,真香!
  18. 【云原生 | Kubernetes 实战】01、K8s-v1.25集群搭建和部署基于网页的 K8s 用户界面 Dashboard
  19. 云原生CI/CD:tekton/pipeline之认证篇
  20. 摄像头poe供电原理_poe供电是什么_poe供电工作原理介绍 - 全文

热门文章

  1. mysql 联合索引 单个索引_mysql的单例索引和联合索引
  2. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
  3. ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave由于鼠标移动速度过快导致问题解决办法...
  4. 前端优化之if...else判断
  5. java初学易犯错语总结
  6. 微信小程序之算法查询
  7. 寒假个人学习心得体会
  8. 因时电动夹爪使用代码
  9. PandaOCR 翻译软件 好像有毒
  10. APP专项测试思维导图