拓扑排序全wa,求助大佬
查看原帖
拓扑排序全wa,求助大佬
181715
gjh303987897楼主2021/11/16 23:22
#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 500001 
using namespace std;
struct data{
	int to,next;
}t[maxn*2];
int js,head[maxn],top,stack[maxn];
int n,m,du[maxn],ans[maxn];
inline void add(int u,int v){
	t[++js].next=head[u];
	t[js].to=v;
	head[u]=js;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v; cin>>u>>v;
		add(u,v); du[u]++;
	}
	for(int i=1;i<=n;i++){
		if(du[i]==0){
			top++; ans[i]=1; stack[++top]=i;
		}
	}
	while(top>0){
		int x=stack[top]; top--;
		for(int i=head[x];i;i=t[i].next){
			ans[t[i].to]=(ans[t[i].to]+ans[x])%80112002; du[t[i].to]--;
			if(du[t[i].to]==0){
				stack[++top]=t[i].to;
			}	
		}
	}
	int maxx=-1;
    for(int i=1;i<=n;i++){
    	if(ans[i]>maxx){
    		maxx=ans[i];
		}
	}
	cout<<maxx;
	return 0;	
} 
2021/11/16 23:22
加载中...