题面链接
https://www.acwing.com/problem/content/850/
思路对于一个有向图来说,只有无环有向图才有拓扑序列,也可以说一个无环有向图必然有拓扑序列,但是不唯一,我们通过逐步将入度为0的点加进我们的队列里面,然后不断地删边,然后再将下一个度为0的点放进来这样就是我们拓扑排序的一种求解方式了
代码#include
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair
#define INF 0x3f3f3f3f
int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};
ll ksm(ll a,ll b) {
ll ans = 1;
for(;b;b>>=1LL) {
if(b & 1) ans = ans * a % mod;
a = a * a % mod;
}
return ans;
}
ll lowbit(ll x){return -x & x;}
const int N = 2e6+10;
//----------------自定义部分----------------
int n,m,q,d[N],vis[N];
vector V[N],ans;
bool topsort(){
queue que;
for(int i = 1;i
关注
打赏