第一次提交的时候过了,时隔半年重新提交竟然re,而且本地能跑过,求大神解惑。
#include <bits/stdc++.h>
using namespace std;
vector<int> v[5005];
queue<int> q;
int dp[5005];
int InDeg[5005];
int n,m,u,uu;
int main()
{
scanf("%d%d",&n,&m);
for (int i=1;i<=m;i++)
{
scanf("%d%d",&u,&uu);
v[u].push_back(uu);
InDeg[uu]++;
}
for (int i=1;i<=n;i++)//入度0点入队
{
if (InDeg[i]==0)
{
q.push(i);
dp[i]=1;
}
}
// cout<<endl<<endl;
while(!q.empty())
{
int now=q.front();
q.pop();
for (int i = 0;i<v[now].size();i++)
{
dp[v[now][i]]=(dp[now]+dp[v[now][i]])%80112002;
InDeg[v[now][i]]--;
if (InDeg[v[now][i]]==0)
{
q.push(v[now][i]);
}
}
// cout<<now<<" "<<dp[now]<<endl;
}
int ans=0;
for (int i=1;i<=n;i++)//出度为0的点的和
if(v[i].empty())
ans=(ans+dp[i])%80112002;
cout<<ans<<endl;
return 0;
}