二次提交,13579点RE
查看原帖
二次提交,13579点RE
318195
Paris_Bentley楼主2021/5/8 20:46

第一次提交的时候过了,时隔半年重新提交竟然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;
}
2021/5/8 20:46
加载中...