也就是给定有向图,求最小字典序的拓扑序,直接用小根堆就行(或者反着建图用大根堆) #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; const int N=100005; int T,n,m,d[N],h[N],cnt,ans[N]; priority_queue<int>q; struct qwe { int ne…
P3243 [HNOI2015]菜肴制作 题目误导你正着做拓扑排序,然鹅你可以手造数据推翻它.于是就只能倒着做 我们开个优先队列,每次把可填的最大的编号取出来搞,最后倒着输出拓扑序就好辣 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; #define N 100005 int n, m, tp, Q[N], in[N]…