20分,求调
查看原帖
20分,求调
979656
Sgt_Dante楼主2023/10/14 19:51
#include <bits/stdc++.h>
using namespace std;
namespace myspace{
	#define ll long long 
	#define pii pair<int,int>
	#define endl "\n"
	#define file(filename) freopen(filename".in","r",stdin),freopen(filename".out","w",stdout)
	#define debug(x) cout<<#x<<"="<<x<<endl 
	#define x first
	#define y second
	const int MAXN=5005;
	const int INT_INF=2147483647;
	const int INF=0x3f3f3f3f;
}
using namespace myspace;
int n,m,mod=80112002; 
vector<int> edge[MAXN];
int in_i[MAXN];
int out_i[MAXN];
int f[MAXN];
ll ans;
void dfs(int i)
{
	if(out_i[i]==0)
	{
		ans+=f[i];
		ans%=mod;
		return ;
	}
	for(int j=0;j<edge[i].size();j++)
	{
		int ne=edge[i][j];
		f[ne]+=f[i];
		in_i[ne]--;
		if(in_i[ne]==0){
			dfs(ne);
		}
	}
}
int main()
{
	cin>>n>>m;
	int u,v;
	for(int i=0;i<m;i++)
	{
		cin>>v>>u;
		edge[u].push_back(v);
		in_i[v]++;
		out_i[u]++;
	}
	for(int i=1;i<=n;i++)
	{
		if(in_i[i]==0){
			f[i]++;
			dfs(i);
		}
	}
	cout<<ans%mod;
	return 0;
}
2023/10/14 19:51
加载中...