题目链接:http://bailian.openjudge.cn/practice/4084
4084:拓扑排序
总时间限制:
1000ms
内存限制:
65536kB
描述
给出一个图的结构,输出其拓扑排序序列,要求在同等条件下,编号小的顶点在前。
输入
若干行整数,第一行有2个数,分别为顶点数v和弧数a,接下来有a行,每一行有2个数,分别是该条弧所关联的两个顶点编号。
v<=100, a<=500
输出
若干个空格隔开的顶点构成的序列(用小写字母)。
样例输入
6 8 1 2 1 3 1 4 3 2 3 5 4 5 6 4 6 5
样例输出
v1 v3 v2 v6 v4 v5
题目意思:
就是有向图的拓扑排序
维护一个队列保存入度为0的结点,题目又要求说编号小的顶点在前,于是这个队列可以定义成优先队列,也就是最小堆,默认的是最大堆
priority_queue<int,vector<int>,greater<int>> Q;
快乐AC,记住思路,是很简单的模板题:
AC:
//图论 拓扑排序
#include <iostream>
#include <queue>
#include <vector>
u