题面
题解
首先我们有个非常显然的思路,
就是直接拓扑排序,用小根堆代替队列再按顺序输出,但是很显然是错的,
因为这只保证了字典序最小,而无法保证答案最优,(<2,4>,<3,1>)就是一个例子。
可以发现,让编号大的尽量在后面被选答案一定最优,所以在反图上大根堆+拓扑排序在逆序输出即可。
代码
代码是以前的,不贴在这里了。
首先我们有个非常显然的思路,
就是直接拓扑排序,用小根堆代替队列再按顺序输出,但是很显然是错的,
因为这只保证了字典序最小,而无法保证答案最优,(<2,4>,<3,1>)就是一个例子。
可以发现,让编号大的尽量在后面被选答案一定最优,所以在反图上大根堆+拓扑排序在逆序输出即可。
代码是以前的,不贴在这里了。