C++编程问题,高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/10 08:57:36
Time Limit:2000MS Memory Limit:65536KB
Total Submit:335 Accepted:84
Description
终于剿灭了魔教的分舵,这时江湖中擅用机关的五行侠之一:杨凡提出一个建议:在魔教的分舵里设下机关,然后诱魔教的部队进入机关阵,再发动机关阵,一举消灭魔教部队。这个计划得到了一行人的一致赞同。杨帆拿出了安装机关所需要的总计N个部件,告诉了大家安装的两个注意事项:
1、某些部件安装时需要另一些部件已安装。例如要安装滑轮,必须先安装好支架。
2、当一些部件都可以安装时,应当先安装编号较小的部件。

因为要安装的部件非常多,所以他们想请你写个程序来帮忙计算出机关安装的正确顺序,你能做到么?Input输入的第一行是一个数T,表示了要安装的不同机关的数目。接下来包含T个机关的信息,每组的第一行是两个数N和M(1<=N<=100000,0<=M<=100000),接下来M行两个数Ai和Bi(1<=Ai,Bi<=N),表示要安装第Ai个部件,就必须先安装第Bi个部件。Output包含T行,每行是一个排列,表示一个安装的顺序。如果无解,就输出一个-1。
Sample Input3
6 7
2 1
3 2
5 1
4 2
6 3
4 5
6 4
5 0
3 3
1 2
2 3
3 1
Sample Output
1 2 3 5 4 6
1 2 3 4 5
-1
Hint
请使用scanf和printf分别进行输入和输出

构图,然后拓排+优先队列。

。。。发这地方好像错了吧,这里应该没有热衷于ACM ICPC的高手,况且这题叙述的也很没有ICPC的风格

这个不是找C++高手啊,你应该找算法高手。