20分求调!!!
查看原帖
20分求调!!!
884939
youlingjun楼主2024/9/22 15:16
#include<iostream>
using namespace std;
int n,m,deg[5005],cnt[5005],js=0,ans=0;
bool a[5005][5005];
void ty(int x)
{
	bool flag=0,fla=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i][x]==1)
		{
			cnt[x]+=cnt[i];
			fla=1;
		}
		if(a[x][i]==1)
		{
			deg[i]--;
			flag=1;
		}
	}
	if(fla==0) cnt[x]=1;
	if(flag==0) ans+=cnt[x];
	ans=ans%80112002;
	return;
}
int main()
{
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		int x,y;
		cin>>x>>y;
		a[x][y]=1;
		deg[y]++;
	}
	while(js<n)
	{
		for(int i=1;i<=n;i++)
		{
			if(deg[i]==0)
			{
				js++;
				ty(i);
				deg[i]=-1;
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/9/22 15:16
加载中...