照着板子打的 全WA了。。。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
inline int read()
{
int x=0,f=1; char ch=getchar();
while (ch<'0'||ch>'9'){
if (ch=='-') f=-1; ch=getchar();}
while (ch>='0'&&ch<='9'){
x=x*10+ch-48; ch=getchar();}
return x*f;
}
vector<int> g[N];
int in[N],in2[N],dis[N];
int n,m,x,y,ans;
void bfs()
{
memset(dis,0,sizeof(dis));
queue<int> q;
for(int i=1;i<=n;i++)
if(in[i]==0) x=i;// 不会被其他生物捕食的消费
for(int i=1;i<=n;i++)
if(in2[i]==0) y=i;//最弱 不会捕食其他生物的生产者
q.push(y);
dis[x]=1;
while(!q.empty())
{
int xxx=q.front();
q.pop();
for(int i=0;i<g[xxx].size();i++)
{
int yyy=g[xxx][i];
dis[yyy]=(dis[yyy]+dis[xxx])%80112002;
in[yyy]--;
if(in[yyy]==0) q.push(yyy);
}
}
ans+=dis[y];
ans%=80112002;
}
signed main( )
{
n=read(),m=read();
for(int i=1;i<=m;i++)
{
int x=read();
int y=read();
g[x].push_back(y);
in[x]++; in2[y]++;
}
bfs();
cout<<ans;
return 0;
}