题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857
题面是中文题面,就不解释题意了,自己点击链接去看下啦~这题排序有两个条件,一个是按给定的那个序列(即输入的u,v,优先级最高),一个是序号从小到大(优先级次之)。正向的话由于这两个条件不好维护,所以就想着用反向拓扑排序来实现。首先记录每个节点的出度,然后用优先队列来维护顺序(使用默认的从大到小排序),最后反向输出即可。
代码实现如下:
1 #include <queue> 2 #include <cstdio> 3 #include <vector> 4 #include <cstring> 5 using namespace std; 6 7