求助5-10wa(记忆化搜索)
查看原帖
求助5-10wa(记忆化搜索)
719619
drinktowind楼主2023/7/21 16:10
#include <bits/stdc++.h>
using namespace std;
long long a[5010];
bool f[5010],fa[5010];
vector<long long> vc[5010];
long long dfs(long long n)
{
    long long ans=0,k=0;
    ans=0;
	if(a[n])
		return a[n];
	bool flg=0;
	for(auto x:vc[n])
	{
		flg=1;
		k=dfs(x)%80112002;
        ans+=k;
        ans%=80112002;
        //cout<<n<<" "<<x<<" "<<ans-k<<endl;
	}
	if(!flg)
		ans++;
	ans%=80112002;
    a[n]=ans;
    return a[n];
}
int main()
{
	long long n,m,x,y;
    long long mx=0;
	scanf("%lld%lld",&n,&m);
	for(long long i=1;i<=m;i++)
	{
		scanf("%lld%lld",&x,&y);
		f[x]=1;
		vc[y].push_back(x);
	}
	for(long long i=1;i<=n;i++)
	{
		if(!f[i])
		    mx+=dfs(i)%80112002;
	}
	printf("%lld",mx%80112002);
	return 0;
}
2023/7/21 16:10
加载中...