请求支援,悬赏一个关注
查看原帖
请求支援,悬赏一个关注
528562
_Niaoniao_楼主2022/7/11 20:57

0分qwq

#include<bits/stdc++.h>
using namespace std;
int n,m,a[500001],b[500001],chi[5001],si[5001],rd[5001][5001];
long long dp[5001],ax[5001],ans;
int dfs(int now){
	if(ax[now]==1){
		return dp[now];
	}
	ax[now]=1;
	int k=0;
	for(int i=1;i<=n;i++){
		if(rd[now][i]==1){
			dp[now]=dp[now]+dfs(i);
			dp[now]=dp[now]%80112002;
			k=1;
		}
	}
	if(k==0){
		dp[now]=1;
	}
	return dp[now];
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i]>>b[i];
		si[a[i]]++;
		chi[b[i]]++;
		rd[a[i]][b[i]]=1;
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(si[i]<si[j]){
				swap(si[i],si[j]);
				swap(chi[i],chi[j]);
			}
		}
	}
	int i=1;
	while(chi[i]==0){
		i++;
		ans=(ans+dfs(i))%80112002;
	}
	cout<<ans<<endl;
	return 0;
}
2022/7/11 20:57
加载中...