HDU 4857逃生(基于拓扑排序的最小优先处理)
发布时间
阅读量:
阅读量
逃生
时间限制:2000/1000 MS(Java/Others) 内存限制:32768/32768 K(Java/Others)
总提交次数:74 接受提交次数:13
问题描述
发生了一件令人头疼的事情,目前所有人都在忙着逃生。然而逃生的通道非常狭窄,只能排成一列。
现有n个人,编号从1到n。同时存在一些特殊的约束条件,每个条件的形式为:a必须位于b之前。
此外,社会存在不平等现象,这些人有的贫穷,有的富有。其中1号最为富有,2号次之,依此类推。由于有钱人会贿赂负责人,因此他们能够获得一些特殊待遇。
负责人现在可以决定大家的排队顺序。由于接受了贿赂,他需要让1号尽可能靠前;如果此时仍存在多种可能的情况,则让2号尽可能靠前;若仍有多种可能,则让3号尽可能靠前,并以此类推。
你的任务是安排大家的顺序。我们保证一定存在解。
输入
第一行是一个整数T(1 <= T <= 5),表示测试数据的数量。
然后对于每个测试数据,第一行包含两个整数n(1 <= n <= 30000)和m(1 <= m <= 100000),分别表示人数和约束条件的数量。
接下来m行中,每行有两个整数a和b,表示有一个约束条件a必须排在b之前。a与b必然不同。
输出
对于每个测试数据,在一
全部评论 (0)
还没有任何评论哟~
