题目链接
题意:总共有n个任务,有m个任务你必须完成,每个任务完成前可以有其他的子任务也必须完成,求完成的任务的顺序。
思路:一开始想着拓扑排序,但好像也不用那么反面,直接将那m个任务进行dfs,如果先后顺序反了则是-1.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+1;
int n,m,a[maxn],vis[maxn],pos[maxn];
vector<int>g[maxn],ans;
void dfs(int x)
{
vis<