记忆化搜索,不知道后六个点为什么一直wa5555求dalaoo捞捞
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> v[5050];
bool st[5050],ed[5050];
int vis[5050];
bool f[5050];
int n,m;
long long ans;
long long dfs(long long x);
signed main()
{
memset(st,1,sizeof(st));
memset(ed,1,sizeof(ed));
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
cin>>a>>b;
v[b].push_back(a);
st[a]=0;
ed[b]=0;
}
for(int i=1;i<=n;i++)
{
if(st[i]==1)
{
ans+=dfs(i)%80112002;
}
}
cout<<ans<<endl;
}
long long dfs(long long x)
{
if(vis[x])return vis[x];
else if(ed[x])
{
vis[x]=1;
return vis[x];
}
for(int i=0;i<v[x].size();i++)
{
vis[x]+=dfs(v[x][i]);
}
vis[x]=vis[x]%80112002;
return vis[x];
}