Luogu7054 [NWRRC2015]Graph
题意:给定一张
求出这个最大的最小拓扑序,并构造一种加边方案。
性质:记最终的拓扑序为
,则加入的边一定可以都形如 。 证明:将每个加入的弱连通块换成一条链,显然不会增多边数,且不会减弱限制。
根据这条性质,如果我们得到了
下面考虑构造:字典序贪心。
确定某一位拓扑序
① 若
为唯一的 入度点或 ,那么我们不得不将 弹出(并删除其出边),作为这一位拓扑序。 ② 若
并不是唯一的 入度点且 ,那么我们可以给 加一条入边。 我们暂不考虑入边的起点是谁。
如上流程有个问题,将
但我们不能从“起点”出发考虑,那样太麻烦,转而从“终点”出发考虑。
我们引入“次
次
考虑最大的次
这样我们就能放心地给
用小根堆维护“