拓扑,看了半天没看出错误,求助qwq
查看原帖
拓扑,看了半天没看出错误,求助qwq
457666
Sity_Hugh楼主2023/4/3 21:31
#include<bits/stdc++.h>
//#define int long long
using namespace std;
int n,m,u,v,res,fir[500005],dp[5005],in[5005],out[5005],cnt;
queue<int> q;
const int mod=80112002;
struct Node{
	int to,nxt;
}edge[500005];
void addedge(int u,int v){
	edge[++cnt]=(Node){v,fir[u]};
	fir[u]=cnt;
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>n>>m;
	for (int i=1;i<=n;i++){
		cin>>u>>v;
		in[v]++;out[u]++;
		addedge(u,v);
	}
	for (int i=1;i<=n;i++){
		if (!in[i]) q.push(i),dp[i]=1;
	}
	while (!q.empty()){
		u=q.front();
		q.pop();
		for (int i=fir[u];i;i=edge[i].nxt){
			v=edge[i].to;
			dp[v]=(dp[v]+dp[u])%mod;
			in[v]--;
			if (!in[v]) q.push(v);
		}
	}
	for (int i=1;i<=n;i++) cout<<dp[i]<<" ";
	cout<<res;
	return 0;
}
2023/4/3 21:31
加载中...